private ERAUserModel RegisterNewUser(ERAUserModel userModel) { ERAUserModel user = null; var userRepo = unitOfWork.GetRepository <OnlineAssessmentUser>(); var userTypeID = (int)userModel.UserTypeId; if (userTypeID == 0 && !string.IsNullOrEmpty(userModel.UserType)) { userTypeID = GetUserTypeIDByType(userModel.UserType); } else { userModel.UserType = GetUserTypeByID(userTypeID); } if (userTypeID != -1) { userModel.UserTypeId = Convert.ToByte(userTypeID); var newUser = DataToDomain.MapERAUserModelToUser(userModel); userRepo.Insert(newUser); unitOfWork.Save(); user = DataToDomain.MapUserToERAUserModel(newUser); user.UserType = userModel.UserType; } return(user); }
public async Task <ERAUserModel> ValidateUserCredential(ERAUserModel userModel) { ERAUserModel result = null; var userRepo = unitOfWork.GetRepository <OnlineAssessmentUser>(); var userTypeRepo = unitOfWork.GetRepository <UserType>(); var userRiskRepo = unitOfWork.GetRepository <UserRisk>(); var user = await Task.Run(() => userRepo.Get(x => x.Email == userModel.Email && x.Password == userModel.Password).FirstOrDefault()); if (user != null) { result = DataToDomain.MapUserToERAUserModel(user); var userType = await Task.Run(() => userTypeRepo.Get(x => x.UserTypeId == user.UserTypeId).FirstOrDefault()); if (userType != null) { result.UserType = userType.UserTypeName; } var userRisk = userRiskRepo.Get(x => x.UserId == user.UserId).ToList(); if (userRisk != null) { var latestTestEntry = userRisk.Select(x => new { x.AssesmentDate, x.TestIdentifier }).OrderByDescending(x => x.AssesmentDate).FirstOrDefault(); if (latestTestEntry != null) { result.IsTestTaken = true; result.LastAssessmentDate = latestTestEntry.AssesmentDate; result.LatestTestIdentifier = latestTestEntry.TestIdentifier; } //result.LastTestTakenOn = lastCompetency.RatingDate; } } return(result); }
public async Task <Tuple <string, ERAUserModel, int> > GetUserProfile(ERAUserModel userModel) { ERAUserModel result = null; int status = 0; var message = ""; var userRepo = unitOfWork.GetRepository <OnlineAssessmentUser>(); if (userModel != null && userModel.UserId > 0) { var user = await Task.Run(() => userRepo.Get(x => x.UserId == userModel.UserId).FirstOrDefault()); if (user == null) { status = -1; message = "User does not exist!!"; result = userModel; } else { result = DataToDomain.MapUserToERAUserModel(user); if (result != null) { status = 1; message = "User profile found!!"; } } } return(new Tuple <string, ERAUserModel, int>(message, result, status)); }
public async Task <Tuple <string, ERAUserModel, int> > UpdateUserProfile(ERAUserModel userModel) { ERAUserModel result = null; int status = 0; var message = ""; var userRepo = unitOfWork.GetRepository <OnlineAssessmentUser>(); if (userModel != null && userModel.UserId > 0) { var user = await Task.Run(() => userRepo.Get(x => x.UserId == userModel.UserId).FirstOrDefault()); if (user == null) { status = -1; message = "User does not exist!!"; result = userModel; } else { var userEmail = await Task.Run(() => userRepo.Get(x => x.UserId != userModel.UserId && x.Email == userModel.Email).FirstOrDefault()); if (userEmail == null) { user.CompanyName = userModel.CompanyName; user.Email = userModel.Email; user.EmployeeNumber = userModel.EmployeeNumber; user.FirstName = userModel.FirstName; user.LastName = userModel.LastName; user.Password = userModel.Password; userRepo.Update(user); unitOfWork.Save(); result = DataToDomain.MapUserToERAUserModel(user); if (result != null) { status = 1; message = "User profile updated successfully!!"; } } else { status = -2; message = "Email trying to update already exist.!!"; } } } log.LogDebug(message); return(new Tuple <string, ERAUserModel, int>(message, result, status)); }
public static OnlineAssessmentUser MapERAUserModelToUser(ERAUserModel user) { return(new OnlineAssessmentUser() { Email = user.Email, EmployeeNumber = user.EmployeeNumber, Password = user.Password, FirstName = user.FirstName, LastName = user.LastName, RegisteredDate = user.RegisteredDate, CompanyName = user.CompanyName, UserId = user.UserId, UserTypeId = user.UserTypeId }); }
public async Task <Tuple <string, ERAUserModel, int> > ValidateUserAndRegister(ERAUserModel userModel) { ERAUserModel result = null; int status = 0; var message = ""; var userRepo = unitOfWork.GetRepository <OnlineAssessmentUser>(); var user = await Task.Run(() => userRepo.Get(x => x.UserId == userModel.UserId).FirstOrDefault()); if (user != null) { var userEmail = await Task.Run(() => userRepo.Get(x => x.Email == userModel.Email).FirstOrDefault()); if (userEmail != null) { status = -1; message = "User already exist!!"; result = DataToDomain.MapUserToERAUserModel(userEmail); result.UserType = userModel.UserType; } else { result = RegisterNewUser(userModel); if (result != null) { status = 1; message = "User registered successfully!!"; } else { message = "No user type found with user type name:" + userModel.UserType; } } } else { var userEmail = await Task.Run(() => userRepo.Get(x => x.Email == userModel.Email).FirstOrDefault()); if (userEmail != null) { status = -1; message = "User already exist!!"; result = DataToDomain.MapUserToERAUserModel(userEmail); result.UserType = userModel.UserType; } else { result = RegisterNewUser(userModel); if (result != null) { status = 1; message = "User registered successfully!!"; } else { message = "No user type found with user type name:" + userModel.UserType; } } } log.LogDebug(message); return(new Tuple <string, ERAUserModel, int>(message, result, status)); }