private EditAccountViewModel GenerateEditAccountViewModel(Account a) { EditAccountViewModel eavm = new EditAccountViewModel(); eavm.about_me = a.about_me; eavm.access_level_id = a.access_level_id; eavm.birth_day = a.birthdate.Day; eavm.birth_month = a.birthdate.Month; eavm.birth_year = a.birthdate.Year; eavm.first_name = a.first_name; eavm.gender_id = a.gender_id; eavm.id = a.id; eavm.last_name = a.last_name; eavm.salutation_id = a.salutation_id; List<SelectListItem> Salutations = new List<SelectListItem>(); Gender g = db.Genders.Find(eavm.gender_id); if (g != null) { foreach (Salutation s_2 in g.Salutations) { SelectListItem sli = new SelectListItem(); sli.Text = s_2.value.ToString(); sli.Value = s_2.id.ToString(); Salutations.Add(sli); } eavm.Salutations = new SelectList(Salutations, "Value", "Text"); } else { eavm.Salutations = new SelectList(Salutations, "Value", "Text"); } eavm.days = GenerateDayList(eavm.birth_month, eavm.birth_year); eavm.months = GenerateMonthList(); eavm.years = GenerateYearList(); eavm.access_levels = new SelectList(db.AccessLevels, "id", "value"); return eavm; }
public ActionResult EditPage(EditAccountViewModel eavm) { if (Session["User"] == null) { return RedirectToAction("LoginPage", "Application"); } else if (eavm.id != Convert.ToInt32(Session["User"])) { return RedirectToAction("LoggedInProfile"); } else { Salutation s = db.Salutations.Find(eavm.salutation_id); if (s != null) { if (s.gender_id != eavm.gender_id) { this.ModelState.AddModelError("salutation_id", "Salutation Error."); } } else { this.ModelState.AddModelError("salutation_id", "Salutation Error."); } if (db.Genders.Find(eavm.gender_id) == null) { this.ModelState.AddModelError("gender_id", "Gender Error."); } Account a = db.Accounts.Find(Session["User"]); if (a == null) { this.ModelState.AddModelError("id", "General Error."); } else if (a.access_level_id != eavm.access_level_id && Session["Elevation"].Equals("Administrator")) { this.ModelState.AddModelError("access_level_id", "Access Error."); } if (this.ModelState.IsValid) { EditAccount(eavm); return RedirectToAction("LoggedInProfile", "Application"); } else { List<SelectListItem> Salutations = new List<SelectListItem>(); Gender g = db.Genders.Find(eavm.gender_id); if (g != null) { foreach (Salutation s_2 in g.Salutations) { SelectListItem sli = new SelectListItem(); sli.Text = s_2.value.ToString(); sli.Value = s_2.id.ToString(); Salutations.Add(sli); } eavm.Salutations = new SelectList(Salutations, "Value", "Text"); } else { eavm.Salutations = new SelectList(Salutations, "Value", "Text"); } eavm.days = GenerateDayList(eavm.birth_month, eavm.birth_year); eavm.months = GenerateMonthList(); eavm.years = GenerateYearList(); eavm.access_levels = new SelectList(db.AccessLevels, "id", "value"); this.ModelState.AddModelError("GeneralError", "Error: There are some invalid fields. Please check your input before trying again."); return View("EditPage", eavm); } } }
private void EditAccount(EditAccountViewModel eavm) { Account a = db.Accounts.Find(Session["User"]); a.first_name = eavm.first_name; a.last_name = eavm.last_name; a.salutation_id = eavm.salutation_id; a.gender_id = eavm.gender_id; if (Session["User"] != null && Session["Elevation"] != null && Session["Elevation"].Equals("Administrator")) { a.access_level_id = eavm.access_level_id; } a.about_me = eavm.about_me; String datestring = eavm.birth_month + "/" + eavm.birth_day + "/" + eavm.birth_year; DateTime dt = DateTime.ParseExact(datestring, "M/d/yyyy", CultureInfo.InvariantCulture); a.birthdate = dt; db.SaveChanges(); }