public async Task <ActionResult> EditEmployee(Models.EmployeeModel model) { if (ModelState.IsValid) { JneCommSitesDataLayer.JneCommSitesDataBaseEntities _dbContext = new JneCommSitesDataLayer.JneCommSitesDataBaseEntities(); var aspNetUserQuery = (from p in _dbContext.AspNetUsers where p.UserName == model.UserName select p).FirstOrDefault(); var actualRol = (from p in _dbContext.T_CrewRoles from d in p.AspNetUsers where d.Id == aspNetUserQuery.Id select p).FirstOrDefault(); aspNetUserQuery.T_CrewRoles.Clear(); aspNetUserQuery.T_CrewRoles.Add(actualRol); if (!string.IsNullOrEmpty(model.Password)) { var token = await UserManager.GeneratePasswordResetTokenAsync(aspNetUserQuery.Id); var result = await UserManager.ResetPasswordAsync(aspNetUserQuery.Id, token, model.Password); } var userInf = (from p in _dbContext.T_UsersData where p.Id == aspNetUserQuery.Id select p).First(); userInf.UserFirstName = model.firstName; userInf.UserLastName = model.LastName; userInf.LaborHourPay = Convert.ToDecimal(model.laborHour); userInf.IsBilingual = model.isBilingual; //userInf.NumDaysForPassChange = model.daysChangePass; _dbContext.SaveChanges(); JneCommSitesDataLayer.JneCommSitesDataBaseEntities _Context = new JneCommSitesDataLayer.JneCommSitesDataBaseEntities(); var queryCertificationsByUser = (from p in _Context.T_CertificationsByUserCrew where p.Id == aspNetUserQuery.Id select p); foreach (var item in queryCertificationsByUser) { _Context.T_CertificationsByUserCrew.Remove(item); } _Context.SaveChanges(); foreach (var item in model._ListCertifications) { if (item.isActive) { JneCommSitesDataLayer.T_CertificationsByUserCrew newCertificationByUser = new JneCommSitesDataLayer.T_CertificationsByUserCrew(); newCertificationByUser.vCertificationName = item.certificationName; newCertificationByUser.Id = aspNetUserQuery.Id; if (item.expirationTime != null) { newCertificationByUser.dExpirationTime = Convert.ToDateTime(item.expirationTime); } if (item.documentToUpload != null) { newCertificationByUser.vDocumentName = (model.UserName + "_" + item.certificationName + Path.GetExtension(item.documentToUpload.FileName)).Replace(" ", ""); string path = System.IO.Path.Combine( Server.MapPath("~/Documents/Certifications/"), (model.UserName + "_" + item.certificationName + Path.GetExtension(item.documentToUpload.FileName)).Replace(" ", "")); // file is uploaded item.documentToUpload.SaveAs(path); } _dbContext.T_CertificationsByUserCrew.Add(newCertificationByUser); _dbContext.SaveChanges(); } } model._UserCrewGroup = Helper.Helper.GetSubRoles("CrewRole"); model._StatesList = Helper.Helper.GetUSAStates(); return(RedirectToAction("CrewEmployeeIndex", "Administration")); } model._UserCrewGroup = Helper.Helper.GetSubRoles("CrewRole"); model._StatesList = Helper.Helper.GetUSAStates(); return(View(model)); }
public async Task <ActionResult> CreateEmployee(Models.EmployeeModel model) { if (ModelState.IsValid) { string UserName = model.UserName.Trim(); try { JneCommSitesDataLayer.JneCommSitesDataBaseEntities _dbContext = new JneCommSitesDataLayer.JneCommSitesDataBaseEntities(); var potentialUser = await UserManager.FindByNameAsync(model.UserName); if (potentialUser != null) { throw new Exception("UserName@This user name is already taken"); } potentialUser = await UserManager.FindByEmailAsync(model.Email); if (potentialUser != null) { throw new Exception("Email@This email is already taken"); } MembershipCreateStatus createStatusResult = MembershipCreateStatus.ProviderError; var userProfile = new ApplicationUser { UserName = model.UserName, Email = model.Email }; var result = await UserManager.CreateAsync(userProfile, model.Password); if (!result.Succeeded) { throw new Exception(result.Errors.FirstOrDefault().ToString()); } else { await UserManager.SendEmailAsync(userProfile.Id, "Welcome to JNECommunications LLC", "This is your Username: "******"User was not created, please try again."); } var queryRol = (from p in _dbContext.AspNetRoles where p.Name == "CrewRole" select p).FirstOrDefault(); var queryCrewRol = (from p in _dbContext.T_CrewRoles where p.vCrewRoleName == model.UserCrewGroup select p).FirstOrDefault(); newUserData.Id = user.Id; newUserData.UserFirstName = model.firstName; newUserData.UserLastName = model.LastName; //newUserData.NumDaysForPassChange = model.daysChangePass; newUserData.UserDescription = "User for crew"; //newUserData.ForcePassChange = model.forcePassChange; newUserData.vStateCode = model.states; newUserData.LaborHourPay = Convert.ToDecimal(model.laborHour); newUserData.IsBilingual = model.isBilingual; _dbContext.T_UsersData.Add(newUserData); user.AspNetRoles.Add(queryRol); user.T_CrewRoles.Add(queryCrewRol); user.LockoutEnabled = model.lockedOutUser; _dbContext.SaveChanges(); foreach (var item in model._ListCertifications) { if (item.isActive) { JneCommSitesDataLayer.T_CertificationsByUserCrew newCertificationByUser = new JneCommSitesDataLayer.T_CertificationsByUserCrew(); newCertificationByUser.vCertificationName = item.certificationName; newCertificationByUser.Id = user.Id; if (item.expirationTime != null) { newCertificationByUser.dExpirationTime = Convert.ToDateTime(item.expirationTime); } if (item.documentToUpload != null) { newCertificationByUser.vDocumentName = (model.UserName + "_" + item.certificationName + Path.GetExtension(item.documentToUpload.FileName)).Replace(" ", ""); string path = System.IO.Path.Combine(Server.MapPath("~/Documents/Certifications/"), (model.UserName + "_" + item.certificationName + Path.GetExtension(item.documentToUpload.FileName)).Replace(" ", "")); // file is uploaded item.documentToUpload.SaveAs(path); } _dbContext.T_CertificationsByUserCrew.Add(newCertificationByUser); _dbContext.SaveChanges(); } } _dbContext.Dispose(); TempData["Message"] = "User was created successfully"; return(RedirectToAction("CrewEmployeeIndex", "Administration")); } } catch (Exception err) { model._UserCrewGroup = Helper.Helper.GetSubRoles("CrewRole"); model._StatesList = Helper.Helper.GetUSAStates(); string[] tokens = err.Message.Split('@'); if (tokens.Length > 1) { ModelState.AddModelError(tokens[0], tokens[1]); } else { ModelState.AddModelError(String.Empty, err.Message); } } } model._UserCrewGroup = Helper.Helper.GetSubRoles("CrewRole"); model._StatesList = Helper.Helper.GetUSAStates(); return(View(model)); }