public static LoginStatus Login(string email, string password) { UserRepository userRepository = new UserRepository(); UserRoleRepository userRoleRepository = new UserRoleRepository(); UserPageRepository userPageRepository = new UserPageRepository(); UserGroupRepository userGroupRepository = new UserGroupRepository(); CollegeGroupRepository collegeGroupRepository = new CollegeGroupRepository(); if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password)) { return(LoginStatus.Failure); } var user = userRepository.GetUserLogin(email, password); if (user == null) { return(LoginStatus.Failure); } else { if (user.IsLoggedIn.HasValue && user.IsLoggedIn.Value == true) { return(LoginStatus.AlreadyLoggedIn); } } var userRoles = userRepository.GetUserRoleByUserId(user.Id, null); var userRoleName = GetUserRoleName(userRoles); #region Check Student Login Time if (userRoles != null && userRoles.Count > 0) { if (userRoles[0].Code == "STUDENT") { var tutorDetails = userRepository.GetTutorStudentMappingByTutor(null, user.Id); if (tutorDetails != null && tutorDetails.Count > 0) { var userLoginTime = userRepository.GetUserLoginTimeByTutor(tutorDetails[0].TutorId).FirstOrDefault(); //If time limt set then compare current time and time limit if (userLoginTime != null && !string.IsNullOrWhiteSpace(userLoginTime.ConfigurationType)) { if (userLoginTime.ConfigurationType.Trim() == Utility.UserLoginConfigurationType.SET_LIMIT) { var weekDay = (int)DateTime.Now.DayOfWeek; var userLoginTimeConfiguration = userRepository.GetUserLoginTimeConfigurationByTutor(tutorDetails[0].TutorId, weekDay).FirstOrDefault(); //Check is login allow for current week day. if (userLoginTimeConfiguration != null) { if (userLoginTimeConfiguration.IsAllowLogin == true) { var loginStartTime = userLoginTimeConfiguration.LoginStartTime.Value; var loginEndTime = userLoginTimeConfiguration.LoginEndTime.Value; var dtLoginStartTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, loginStartTime.Hours, loginStartTime.Minutes, loginStartTime.Seconds); var dtLoginEndTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, loginEndTime.Hours, loginEndTime.Minutes, loginEndTime.Seconds); var currentDateTime = DateTime.Now; if (!((currentDateTime > dtLoginStartTime) && (currentDateTime < dtLoginEndTime))) { return(LoginStatus.InvalidLoginTime); } else { LogInManager.LoginStartTime = loginStartTime; LogInManager.LoginEndTime = loginEndTime; } } else { return(LoginStatus.InvalidLoginTime); } } } else if (userLoginTime.ConfigurationType.Trim() == Utility.UserLoginConfigurationType.RESTRICTED) { return(LoginStatus.InvalidLoginTime); } } } } } #endregion var userPageAccessRights = userPageRepository.GetUserPageAccessRights(user.Id, string.Empty); var collegeGroup = collegeGroupRepository.GetCollegeGroupById(user.CollegeGroupId.Value); if (collegeGroup != null) { var userGroup = userGroupRepository.GetUserGroupById(collegeGroup.UserGroupId.Value); if (userGroup != null) { LogInManager.UserGroup = userGroup; LogInManager.CurrencyId = userGroup.CurrencyId; var currencyInfo = CurrencyManager.GetCurrencyInfoById(userGroup.CurrencyId); if (currencyInfo != null) { LogInManager.CurrencyCode = currencyInfo.Code; LogInManager.CurrencyConversionRate = currencyInfo.ConversionRate; LogInManager.CurrencySymbol = currencyInfo.CurrencySymbol; } } } LogInManager.UserName = user.Name; LogInManager.CashierNumber = user.CashierNumber; LogInManager.LoggedInUserId = user.UserId; LogInManager.LoggedInUserSessionId = System.Web.HttpContext.Current.Session.SessionID; LogInManager.LoggedInUser = user; LogInManager.UsersRoles = userRoles; LogInManager.UserPageAccessRights = userPageAccessRights; LogInManager.UserRoleName = userRoleName; LogInManager.UserRoleCode = GetUserRoleCode(userRoles); //Update Last LoggedIn Date. userRepository.UpdateUsersLastLoginTime(user.Id); //Update Flag IsLoggedIn = true userRepository.UpdateIsLoggedInFlag(user.Id, true); return(LoginStatus.Success); }