private static AccountListRow GetAccountView(MembershipUser account) { KcsarUserProfile profile = ProfileBase.Create(account.UserName) as KcsarUserProfile; AccountListRow row = new AccountListRow { Username = account.UserName, LastActive = account.LastLoginDate, FirstName = profile.FirstName, LastName = profile.LastName, LinkKey = profile.LinkKey, Email = account.Email, ExternalSources = profile.ExternalSource, IsLocked = account.IsLockedOut, }; return(row); }
public ActionResult EditUser(string id, FormCollection fields) { AccountListRow row = GetAccountView(id); TryUpdateModel(row, new[] { "Email", "LinkKey", "ExternalSources" }); if (string.IsNullOrWhiteSpace(row.LinkKey)) { TryUpdateModel(row, new[] { "LastName", "FirstName" }); } if (row.LastName != fields["LastName"]) { ModelState.SetModelValue("LastName", new ValueProviderResult(fields["LastName"], fields["LastName"], CultureInfo.CurrentUICulture)); ModelState.AddModelError("LastName", "Can't be changed while Link is set"); } if (row.FirstName != fields["FirstName"]) { ModelState.SetModelValue("FirstName", new ValueProviderResult(fields["FirstName"], fields["FirstName"], CultureInfo.CurrentUICulture)); ModelState.AddModelError("FirstName", "Can't be changed while Link is set"); } if (ModelState.IsValid) { MembershipUser user = Membership.GetUser(id); KcsarUserProfile profile = ProfileBase.Create(user.UserName) as KcsarUserProfile; if (user.Email != row.Email) { user.Email = row.Email; } if (profile.LastName != row.LastName) { profile.LastName = row.LastName; } if (profile.FirstName != row.FirstName) { profile.FirstName = row.FirstName; } if (profile.LinkKey != row.LinkKey) { profile.LinkKey = row.LinkKey; } if (profile.ExternalSource != row.ExternalSources) { profile.ExternalSource = row.ExternalSources; } try { Membership.UpdateUser(user); profile.Save(); ViewData["success"] = "Saved OK"; } catch (Exception e) { ViewData["error"] = e.ToString(); } } return(View(row)); //TryUpdateModel(user, new[] { "Email" }); //ModelState.SetModelValue("Owners", fields["Owners"]); //role.Owners.Clear(); //role.Owners.AddRange((fields["Owners"] ?? "").Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(f => new Guid(f.Trim()))); //ModelState.SetModelValue("Destinations", fields["Destinations"]); //role.Destinations.Clear(); //role.Destinations.AddRange((fields["Destinations"] ?? "").Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(f => f.Trim())); //try //{ // nested.UpdateRole(role); // ViewData["success"] = "Saved OK"; //} //catch (Exception e) //{ // ViewData["error"] = e.ToString(); //} //return View(role); }