/// <summary> /// Validate User if given User Code is correct or not /// </summary> /// <param name="UserlCode">User Code of User</param> /// <param name="Type">Validation type (Only User Code, User Code and Email etc)</param> /// <returns></returns> public bool ValidateUser(int UserID, AspectEnums.UserValidationType Type) { bool IsValid = false; UserMaster User = null; //if (Type == AspectEnums.UserValidationType.UserlCode) //{ // User = AccuitAdminDbContext.UserMasters.FirstOrDefault(k => k.UserID == UserlCode && !k.IsDeleted); //} if (Type == AspectEnums.UserValidationType.EmplCode_Email) { User = AccuitAdminDbContext.UserMasters.FirstOrDefault(k => k.UserID == UserID && !k.isDeleted && !string.IsNullOrEmpty(k.Email)); } if (Type == AspectEnums.UserValidationType.ForgotPasswordAttempts) { DateTime Today = DateTime.Today; DateTime Tomorrow = DateTime.Today.AddDays(1); UserMaster User1 = AccuitAdminDbContext.UserMasters.FirstOrDefault(k => k.UserID == UserID && !k.isDeleted); //// Check Max AttUserts if (User1 != null) { int TodaysAttUserts = AccuitAdminDbContext.OTPMasters.Where(k => k.UserID == UserID && k.CreatedDate >= Today && k.CreatedDate < Tomorrow).Count(); int PasswordAttUserts = Convert.ToInt32(AppUtil.GetAppSettings(AspectEnums.ConfigKeys.FotgotPasswordAttempts)); IsValid = TodaysAttUserts < PasswordAttUserts; } } if (Type == AspectEnums.UserValidationType.LastAttemptDuration) { DateTime Now = DateTime.Now; UserMaster user1 = AccuitAdminDbContext.UserMasters.FirstOrDefault(k => k.UserID == UserID && !k.isDeleted); //// Check Last AttUsert if (user1 != null) { string LastAttUsertDuration = AppUtil.GetAppSettings(AspectEnums.ConfigKeys.LastAttemptDuration); string[] TimeArr = LastAttUsertDuration.Split(':'); DateTime LastAttUsertStart = Now.Subtract(new TimeSpan(Int32.Parse(TimeArr[0]), Int32.Parse(TimeArr[1]), Int32.Parse(TimeArr[2]))); IsValid = AccuitAdminDbContext.OTPMasters.Where(k => k.UserID == UserID && k.CreatedDate >= LastAttUsertStart && k.CreatedDate < Now).Count() <= 0; } } if (User != null) { IsValid = true; } return(IsValid); }
public async Task <bool> ValidateUser(int userId, AspectEnums.UserValidationType type) { var isValid = false; UserMaster user = null; switch (type) { case AspectEnums.UserValidationType.EmplEmail: user = _dbContext.UserMaster.FirstOrDefault(k => k.Id == userId && !k.IsDeleted && !string.IsNullOrEmpty(k.Email)); break; case AspectEnums.UserValidationType.ForgotPasswordAttempts: { var today = DateTime.Today; var tomorrow = DateTime.Today.AddDays(1); var user1 = await _userRepository.GetByIdAsync(userId); // Check Max Attempts var todayAttempts = _dbContext.OtpMaster.Count(k => k.Id == userId && k.CreatedDate >= today && k.CreatedDate < tomorrow); if (user1 != null) { var passwordAttempts = _accountSettings.ForgotPasswordAttempts; isValid = todayAttempts < passwordAttempts; } break; } case AspectEnums.UserValidationType.LastAttemptDuration: { var now = DateTime.Now; var user1 = await _userRepository.GetByIdAsync(userId); // Check Last Attempt if (user1 != null) { var lastAttemptDuration = _accountSettings.LastAttemptDuration; var timeArr = lastAttemptDuration.Split(':'); var lastAttemptStart = now.Subtract(new TimeSpan(int.Parse(timeArr[0]), int.Parse(timeArr[1]), int.Parse(timeArr[2]))); var valid = await _dbContext.OtpMaster.AnyAsync(k => k.Id == userId && k.CreatedDate >= lastAttemptStart && k.CreatedDate < now); isValid = !valid; } break; } } if (user != null) { isValid = true; } return(isValid); }
//#region Forgot Password Functions /// <summary> /// Validate Employee if given Employee Code is correct or not /// </summary> /// <param name="EmplCode">Employee Code of User</param> /// <param name="Type">Validation type (Only Employee Code, Employee Code and Email etc)</param> /// <returns></returns> public bool ValidateUser(int empID, AspectEnums.UserValidationType Type) { return(SecurityRepository.ValidateUser(empID, Type)); }