예제 #1
0
        /// <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);
        }
예제 #2
0
        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);
        }
예제 #3
0
 //#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));
 }