Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }