예제 #1
0
        public async Task <IActionResult> Login(LoginAPIModel model)
        {
            if (ModelState.IsValid)
            {
                Models.User user = await _context.Users
                                   .Include(u => u.Role)
                                   .FirstOrDefaultAsync(u => u.Email == model.Email && u.Password == model.Password);

                if (user != null)
                {
                    await Authenticate(user); // аутентификация

                    var messageReg = CreateCustomStatus.CreateCustomStatusM("200", "Успех авторизации");
                    return(Ok(messageReg));
                }

                else
                {
                    ModelState.AddModelError("", "Неправильный логин и (или) пароль");
                    return(Ok(ModelState.Errors()));
                }
            }
            else
            {
                return(Ok(new { Errors = ModelState.Errors() }));
            }
        }
예제 #2
0
        public async Task <IActionResult> RegisterUser(RegisterAPIModel registerAPIModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Models.User user = await _context.Users.FirstOrDefaultAsync(u => u.Email == registerAPIModel.Email);

                    if (user == null)
                    {
                        // добавляем пользователя в бд
                        user = new Models.User
                        {
                            FirstName = registerAPIModel.FirstName,
                            LastName  = registerAPIModel.LastName,
                            City      = registerAPIModel.City,
                            Email     = registerAPIModel.Email,
                            Phone     = registerAPIModel.Phone,
                            Birthday  = registerAPIModel.Birthday,
                            Name      = registerAPIModel.Email,
                            Password  = registerAPIModel.Password
                        };
                        Role userRole = await _context.Roles.FirstOrDefaultAsync(r => r.Name == "user");

                        if (userRole != null)
                        {
                            user.Role = userRole;
                        }

                        _context.Users.Add(user);

                        await _context.SaveChangesAsync();

                        await Authenticate(user); // аутентификация

                        var messageReg = CreateCustomStatus.CreateCustomStatusM("200", "Успех регистрации");

                        return(Ok(messageReg));
                    }
                    else
                    {
                        return(Ok("Неправильные логин и(или) пароль"));
                    }
                }
                else
                {
                    return(Ok(new { Errors = ModelState.Errors() }));
                }
            }
            catch (Exception ex)
            {
                return(Ok(ex));
            }
        }