public ActionResult Create(UserDetailModel model) { if (ModelState.IsValid) { var user = Mappings.MapDetailViewModelToDomainModel(model); bool success = userRepository.Create(user); if (success) { TempData[TempDataInfMsg] = string.Format("Der Benutzer {0} wurde erfolgreich angelegt", user.FriendlyName); } else { TempData[TempDateErrMsg] = string.Format("Benutzer {0} konnte nicht angelegt werden! Bitte den Administrator kontaktieren", user.FriendlyName); } return RedirectToAction("Index"); } return View(model); }
public ActionResult Edit(Guid id, UserDetailModel model) { bool isLinkAction = Request.Form.AllKeys.Contains("linkAction"); model.UserId = id; if (isLinkAction) { var user = userRepository.GetItemById(id); var groupId = Request.Form["Selection"]; if (string.IsNullOrWhiteSpace(groupId)) { ModelState.AddModelError("Selection", "Es wurde keine Auswahl getroffen"); } else { var ids = groupId.Split(','); var successCount = 0; var msg = string.Empty; foreach (var gId in ids) { var otherId = Guid.Parse(gId); var action = Request.Form["linkAction"]; var success = false; if (action.Equals("DoLink")) { success = userRepository.LinkUserToUserGroup(user, otherId); msg = "Der Benutzer {0} wurde mit {1} Benutzergruppen verknüpft"; } else if (action.Equals("Unlink")) { success = userRepository.UnlinkUserFromUserGroup(user, otherId); msg = "Der Benutzer {0} wurde aus {1} Benutzergruppen herausgenommen"; } else { throw new Exception("Keine Aktion erkannt"); } successCount += success ? 1 : 0; } TempData[TempDataInfMsg] = string.Format(msg, user.FriendlyName, successCount); } } else if (ModelState.IsValid) { var user = userRepository.GetItemById(id); user = Mappings.ApplyViewModelToDomainModel(model, user); var result = userRepository.Edit(id, user); if (!result) { TempData[TempDateErrMsg] = string.Format("Die Änderungen am Benutzer {0} konnten nicht übernommen werden. Bitte kontaktieren Sie den Administrator.", user.FriendlyName); } else { if (!string.IsNullOrWhiteSpace(model.Password)) { result = userRepository.SetPasswordForUser(id, model.Password); if (!result) { TempData[TempDateErrMsg] = string.Format("Das Password für Benutzer {0} konnten nicht gesetzt werden. Bitte kontaktieren Sie den Administrator.", user.FriendlyName); } } TempData[TempDataInfMsg] = string.Format("Die Änderungen am Benutzer {0} wurde erfolgreich übernommen", user.FriendlyName); } return RedirectToAction("Index"); } EnhanceWebModel(model, true); return View(model); }