protected virtual async Task<LoginResponseDto> Create(UserProfileDto input) { var rtv = new LoginResponseDto(); input.userPassword = Cryptors.GetSHAHashData(input.userPassword); input.IsLockoutEnabled = 0; input.DateCreated = DateTime.Now; input.userEmail = input.userEmail; input.ShouldChangePasswordOnNextLogin = 1; input.AccessFailedCount = 0; input.businessName = input.businessName; input.Country = input.Country; UserProfile userDto = MappingProfile.MappingConfigurationSetups().Map<UserProfile>(input); _context.UserProfile.Add(userDto); int res = await _context.SaveChangesAsync(); if (res > 0) { rtv.ResponseCode = 0; rtv.ResponseText = "Successfull"; return rtv; } else { rtv.ResponseCode = -2; rtv.ResponseText = "Failed"; return rtv; } }
protected virtual async Task Create(UserProfileDto input) { UserProfile userDto = MappingProfile.MappingConfigurationSetups().Map <UserProfile>(input); input.Password = Cryptors.GetSHAHashData(input.Password); input.IsLockoutEnabled = 0; input.ShouldChangePasswordOnNextLogin = 1; input.AccessFailedCount = 0; _context.UserProfile.Add(userDto); await _context.SaveChangesAsync(); }
public async Task <LoginResponseDto> AutheticateUser(LoginRequestDto input) { string uname = string.Empty; string pass = string.Empty; var returnProp = new LoginResponseDto(); UserProfile userProfile = null; try { try { userProfile = await _context.UserProfile.Where(p => p.UserName.ToUpper().Equals(input.Username.ToUpper().Trim())).FirstOrDefaultAsync(); } catch (Exception ex) { returnProp.ResponseCode = 400; returnProp.ResponseText = string.Format("Failure to Authenticate Information. Please contact {0} local contact center", config.Value.CompanyName); return(returnProp); } if (userProfile == null) { returnProp.ResponseCode = 400; returnProp.ResponseText = string.Format("User Credentials Does Not Exist. Please contact {0} contact center", config.Value.CompanyName); return(returnProp); } if (userProfile.AccessFailedCount >= Convert.ToInt32(config.Value.LoginCount)) { userProfile.AccessFailedCount = 1; _context.UserProfile.Update(userProfile); await _context.SaveChangesAsync(); returnProp.ResponseCode = 400; returnProp.ResponseText = string.Format("User Locked. Contact administrator"); return(returnProp); } string compare = Cryptors.GetSHAHashData(input.Password); var com = await _context.UserProfile.Where(i => i.Password.Trim() == compare.Trim() && i.UserName.Trim().ToUpper() == input.Username.Trim().ToUpper()).FirstOrDefaultAsync(); if (com != null) { if (userProfile.ShouldChangePasswordOnNextLogin == 1) { returnProp.ResponseCode = 2; returnProp.ResponseText = string.Format("Enforce Password Change"); return(returnProp); } returnProp.ResponseCode = 0; returnProp.ResponseText = "Login Successful"; returnProp.EnforcePassChange = 0; returnProp.RoleId = userProfile.RoleId; returnProp.FullName = string.Format("{0} {1}", userProfile.FirstName, userProfile.LastName); returnProp.UserId = userProfile.Id; userProfile.IsLockoutEnabled = 0; userProfile.AccessFailedCount = 0; userProfile.ShouldChangePasswordOnNextLogin = 0; _context.UserProfile.Update(userProfile); await _context.SaveChangesAsync(); } else { if (userProfile.AccessFailedCount >= Convert.ToInt32(config.Value.LoginCount)) { userProfile.AccessFailedCount = 1; _context.UserProfile.Update(userProfile); await _context.SaveChangesAsync(); returnProp.ResponseCode = 400; returnProp.ResponseText = string.Format("User Locked. Contact administrator"); return(returnProp); } if (userProfile.AccessFailedCount < Convert.ToInt32(config.Value.LoginCount)) { userProfile.AccessFailedCount = Convert.ToInt16(userProfile.AccessFailedCount + 1); _context.UserProfile.Update(userProfile); await _context.SaveChangesAsync(); returnProp.ResponseCode = 3; returnProp.ResponseText = "Invalid Login Id/Password.Enter Password (" + userProfile.AccessFailedCount + "/" + Convert.ToInt32(config.Value.LoginCount) + ")"; return(returnProp); } } } catch (Exception ex) { returnProp.ResponseCode = 400; returnProp.ResponseText = string.Format("Failure to Authenticate Information. Please contact {0} local contact center", config.Value.CompanyName); return(returnProp); } return(returnProp); }