private async Task <ClaimsIdentity> GetClaimsIdentity(string userName, string password) { try { if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password)) { return(await Task.FromResult <ClaimsIdentity>(null)); } // get the user to verifty ILogicUsers lusers = Business.UsersLogic(_userManager); AppUser userToVerify = await lusers.FindByNameAsync(userName); if (userToVerify == null) { return(await Task.FromResult <ClaimsIdentity>(null)); } // check the credentials if (await lusers.CheckPasswordAsync(userToVerify, password)) { return(await Task.FromResult(_jwtFactory.GenerateClaimsIdentity(userName, userToVerify.Id))); } // Credentials are invalid, or account doesn't exist _logger.LogInformation(LoggingEvents.InvalidCredentials, "Invalid Credentials"); return(await Task.FromResult <ClaimsIdentity>(null)); } catch { throw; } }
public async Task <IActionResult> Post([FromBody] RegistrationViewModel model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userIdentity = _mapper.Map <AppUser>(model); //Create the user ILogicUsers lusers = Business.UsersLogic(_userManager); var result = await lusers.RegisterUser(userIdentity, model.Password); if (!result.Succeeded) { return(new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState))); } //Create the customer ILogicCustomers lcust = Business.CustomersLogic(); await lcust.RegisterCustomer(new Customer { IdentityId = userIdentity.Id }); return(new OkObjectResult("Account created")); } catch (System.Exception ex) { _logger.LogError(LoggingEvents.GenericError, ex.Message); return(StatusCode(500, ex)); } }