public ActionResult EditOmbud(string id) { if (id == null) { //return new HttpStatusCodeResult(HttpStatusCode.BadRequest); return(RedirectToAction("Index", "Home")); } ApplicationUser ombud = db.Users.Where(u => u.Id == id).FirstOrDefault(); if (ombud == null) { return(HttpNotFound()); } ApplicationUser currentUser = db.Users.Where(u => u.Id == id).FirstOrDefault(); OmbudEditVM ombudEditVM = new OmbudEditVM(); ombudEditVM.Id = id; ombudEditVM.CareCompanyId = (int)currentUser.CareCompanyId; ombudEditVM.FirstName = currentUser.FirstName; ombudEditVM.LastName = currentUser.LastName; ombudEditVM.PhoneNumber = currentUser.PhoneNumber; ombudEditVM.Email = currentUser.Email; ombudEditVM.SSN = currentUser.SSN; ombudEditVM.CareCompanyName = db.CareCompanies.Where(c => c.Id == ombudEditVM.CareCompanyId).FirstOrDefault().CompanyName; return(View("EditOmbud", ombudEditVM)); }
public ActionResult DetailsOmbud(string id) { if (id == null) { //return new HttpStatusCodeResult(HttpStatusCode.BadRequest); return(RedirectToAction("Index", "Home")); } ApplicationUser ombud = db.Users.Where(u => u.Id == id).FirstOrDefault(); if (ombud == null) { return(HttpNotFound()); } //var currentId = User.Identity.GetUserId(); //ApplicationUser currentUser = db.Users.Where(u => u.Id == currentId).FirstOrDefault(); var companyId = ombud.CareCompanyId; var companyName = db.CareCompanies.Where(c => c.Id == companyId).FirstOrDefault().CompanyName; OmbudEditVM ombudVM = new OmbudEditVM(); ombudVM.CareCompanyName = companyName; ombudVM.FirstName = ombud.FirstName; ombudVM.LastName = ombud.LastName; ombudVM.SSN = ombud.SSN; ombudVM.Email = ombud.Email; ombudVM.PhoneNumber = ombud.PhoneNumber; return(View("DetailsOmbud", ombudVM)); }
//public ActionResult EditOmbud([Bind(Include = "Id,FirstName,LastName,LastLogon,CareCompanyId,SSN,Email,EmailConfirmed,PasswordHash,SecurityStamp,PhoneNumber,PhoneNumberConfirmed,TwoFactorEnabled,LockoutEndDateUtc,LockoutEnabled,AccessFailedCount,UserName")] ApplicationUser applicationUser) public ActionResult EditOmbud([Bind(Include = "Id,FirstName,LastName,CareCompanyId,CareCompanyName,SSN,Email,PhoneNumber")] OmbudEditVM ombudEditVM, string submitButton) { var currentId = User.Identity.GetUserId(); ApplicationUser currentUser = db.Users.Where(u => u.Id == currentId).FirstOrDefault(); bool errorFound = false; //Check that the SSN has the correct format if (!string.IsNullOrWhiteSpace(ombudEditVM.SSN)) { ombudEditVM.SSN = ombudEditVM.SSN.Trim(); Regex regex = new Regex(@"^([1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[12][0-9])))[-]?\d{4}$"); Match match = regex.Match(ombudEditVM.SSN); if (!match.Success) { ModelState.AddModelError("SSN", "Ej giltigt personnummer. Formaten YYYYMMDD-NNNN och YYYYMMDDNNNN är giltiga."); errorFound = true; } } else { errorFound = true; } //Check that the ombud is born in the 20th or 21st century if (!errorFound) { if (int.Parse(ombudEditVM.SSN.Substring(0, 2)) != 19 && int.Parse(ombudEditVM.SSN.Substring(0, 2)) != 20) { ModelState.AddModelError("SSN", "Ombudet måste vara fött på 1900- eller 2000-talet."); errorFound = true; } } //Check that the ombud is at least 18 years old and was not born in the future:-) if (!errorFound) { DateTime ombudBirthday = new DateTime(int.Parse(ombudEditVM.SSN.Substring(0, 4)), int.Parse(ombudEditVM.SSN.Substring(4, 2)), int.Parse(ombudEditVM.SSN.Substring(6, 2))); if (ombudBirthday.Date > DateTime.Now.Date) { ModelState.AddModelError("SSN", "Födelsedatumet får inte vara senare än idag."); errorFound = true; } else if (ombudBirthday > DateTime.Now.AddYears(-18)) { ModelState.AddModelError("SSN", "Ombudet måste vara minst 18 år."); errorFound = true; } } //Check if there is an ombud with the same SSN already in the company. The same ombud is allowed in another company. if (!errorFound) { var twinOmbud = db.Users.Where(u => u.SSN == ombudEditVM.SSN).Where(u => u.Id != ombudEditVM.Id).FirstOrDefault(); if (twinOmbud != null && twinOmbud.CareCompanyId == currentUser.CareCompanyId) { ModelState.AddModelError("SSN", "Det finns redan ett ombud med detta personnummer"); errorFound = true; } } if (!errorFound) { if (ombudEditVM.SSN.Length == 12) { ombudEditVM.SSN = ombudEditVM.SSN.Insert(8, "-"); } } if (submitButton == "Spara") { var possibleTwin = db.Users.Where(u => u.Email == ombudEditVM.Email).FirstOrDefault(); if (possibleTwin != null && possibleTwin.Id != ombudEditVM.Id) { ModelState.AddModelError("Email", "Det finns redan en användare med den emailadressen"); } if (ModelState.IsValid) { var editedOmbud = db.Users.Where(u => u.Id == ombudEditVM.Id).FirstOrDefault(); editedOmbud.FirstName = ombudEditVM.FirstName; editedOmbud.LastName = ombudEditVM.LastName; editedOmbud.CareCompanyId = ombudEditVM.CareCompanyId; editedOmbud.UserName = ombudEditVM.Email; editedOmbud.Email = ombudEditVM.Email; editedOmbud.PhoneNumber = ombudEditVM.PhoneNumber; editedOmbud.SSN = ombudEditVM.SSN; db.Entry(editedOmbud).State = EntityState.Modified; db.SaveChanges(); if (User.IsInRole("Admin")) { return(RedirectToAction("IndexAllOmbuds", "Account")); } // User is in role "Ombud" return(RedirectToAction("IndexOmbud")); } } return(View(ombudEditVM)); }