public ActionResult UserUpdate(AclUserUpdateModel model) { try { using (var dataContext = new HuntingEntities()) { int languageId = (int)Session[LocalizationAttribute.SESSION_LANGUAGE_ID]; var userName = User.Identity.Name; var user = AclUserContext.GetDetail(dataContext, userName); if (user.AccountTypeEx != AccountTypeEnum.Admin) { return(RedirectToAction("Index", "Home")); } AclUser updateItem = null; if (model.IsCreate == false) { updateItem = AclUserContext.GetDetail(dataContext, model.Id); if (updateItem == null) { return(RedirectToAction("Index", "Admin")); } } else { var isUsed = AclUserContext.IsEmailUsed(dataContext, model.Email, model.Id); if (isUsed) { ModelState.AddModelError("Email", AdminRes.VALIDATION_EMAIL_USED); } } if (ModelState.IsValid) { var itemId = AclUserContext.Update(dataContext, updateItem, model, user.Id); if (itemId.HasValue) { return(RedirectToAction("UserDetail", "Admin", new { id = itemId.Value })); } ModelState.AddModelError("", GlobalRes.VALIDATION_UPDATE_FAILED); } model.FillCodeLists(languageId); return(View(model)); } } catch (Exception exception) { logger.Error(exception, "AdminController"); return(RedirectToAction("Index", "Home")); } }
public static int?Update(HuntingEntities dataContext, AclUser updateItem, AclUserUpdateModel model, int userId) { try { if (model.IsCreate) { updateItem = new AclUser() { SysCreated = DateTime.Now, EmailCode = Guid.NewGuid().ToString(), }; dataContext.AclUsers.Add(updateItem); } updateItem.Email = model.Email; updateItem.AccountTypeEx = model.AccountType; updateItem.Fullname = model.Fullname; if (updateItem.AccountTypeEx == AccountTypeEnum.Admin) { updateItem.MaxTerritoryCount = -1; } else if (updateItem.AccountTypeEx == AccountTypeEnum.Standard) { updateItem.MaxTerritoryCount = 0; } else { updateItem.MaxTerritoryCount = int.Parse(model.MaxTerritoryCount); } updateItem.SysEditor = userId; updateItem.SysUpdated = DateTime.Now; if (model.IsCreate) { EmailContext.CreateRegistrationEmail(dataContext, updateItem, userId); } dataContext.SaveChanges(); return(updateItem.Id); } catch (Exception exception) { logger.Error(exception, "Update"); } return(null); }
// GET: UserUpdate/id public ActionResult UserUpdate(int?id) { try { using (var dataContext = new HuntingEntities()) { int languageId = (int)Session[LocalizationAttribute.SESSION_LANGUAGE_ID]; var userName = User.Identity.Name; var user = AclUserContext.GetDetail(dataContext, userName); if (user.AccountTypeEx != AccountTypeEnum.Admin) { ContextUtils.CreateActionStateCookie(Response, ActionTypeEnum.Danger, GlobalRes.ERROR_NOT_ALLOWED); return(RedirectToAction("Index", "Home")); } AclUserUpdateModel model; if (id.HasValue) { var aclUser = AclUserContext.GetDetail(dataContext, id.Value); model = new AclUserUpdateModel(aclUser); } else { model = new AclUserUpdateModel() { IsCreate = true, }; } model.FillCodeLists(languageId); return(View(model)); } } catch (Exception exception) { logger.Error(exception, "AdminController"); ContextUtils.CreateActionStateCookie(Response, ActionTypeEnum.Danger, GlobalRes.ERROR_EXCEPTION); return(RedirectToAction("Index", "Home")); } }