/
metaffoble
/
FitnessManager
Обзор
Документация
Войти
/
metaffoble
/
FitnessManager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
Model/Services/AuthService.cs
114 строк
4 KB
Артем Якушин
fix auth and register v2
16 фев 2026, 13:21
16 фев 2026, 13:21
86750b5
Код
Авторство
О чём код?
using FitnessManager.Model.Data; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FitnessManager.Model.Services { public class AuthService { private FitnessManagerEntities _context; public AuthService(FitnessManagerEntities context) { _context = context; } /// <summary> /// Регистрация нового пользователя /// </summary> public bool Register(string username, string email, string password, string surname, string name, string patronimyc = null) { try { // Проверяем, существует ли пользователь bool userExists = _context.User.Any(u => u.Login == username || u.Email == email); if (userExists) { return false; } // Создаем нового пользователя var user = new User { Surname = surname, Name = name, Patronimyc = patronimyc, Login = username, Email = email, HashPassword = PasswordHasher.HashPassword(password), RegistrationDate = DateTime.Now }; _context.User.Add(user); _context.SaveChanges(); System.Diagnostics.Debug.WriteLine($"Пользователь {username} успешно зарегистрирован"); return true; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"Ошибка регистрации: {ex.Message}"); return false; } } /// <summary> /// Вход пользователя в систему /// </summary> public User Login(string username, string password) { try { // Ищем пользователя по имени var user = _context.User.FirstOrDefault(u => u.Login == username); if (user == null) { System.Diagnostics.Debug.WriteLine($"Пользователь {username} не найден"); return null; } // Проверяем пароль bool isValid = PasswordHasher.VerifyPassword(password, user.HashPassword); if (isValid) { System.Diagnostics.Debug.WriteLine($"Пользователь {username} успешно вошел"); return user; } else { System.Diagnostics.Debug.WriteLine($"Неверный пароль для пользователя {username}"); return null; } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"Ошибка входа: {ex.Message}"); return null; } } /// <summary> /// Проверка существования пользователя /// </summary> public bool UserExists(string username) { return _context.User.Any(u => u.Login == username); } /// <summary> /// Проверка существования email /// </summary> public bool EmailExists(string email) { return _context.User.Any(u => u.Email == email); } } }