public UserViewData GetData(User user) { var userViewData = new UserViewData(); userViewData.User = user; using (var db = new TrackerDataContext()) { userViewData.Roles = UIHelper.GetRoleSelectList(null, user.RoleList.ToList()); userViewData.Audits = UIHelper.TransformAudits(db.Audit.ByUserId(user.Id).OrderByDescending(a => a.Date).ToList()); } return(userViewData); }
public ActionResult UserEdit(int id) { User user = null; var userViewData = new UserViewData(); try { using (var db = new TrackerDataContext()) { var options = new DataLoadOptions(); options.LoadWith <Data.User>(u => u.UserRoleList); options.LoadWith <Data.UserRole>(u => u.Role); db.LoadOptions = options; user = db.User.GetByKey(id); UpdateModel(user); if (!db.GetChangeSet().Updates.Contains(user)) { var ruleManager = new RuleManager(); ruleManager.Run(user); if (ruleManager.BrokenRules.Count > 0) { throw new BrokenRuleException(ruleManager.BrokenRules); } } db.SubmitChanges(); var audit = new Audit(db.LastAudit); audit.User = user; db.Audit.InsertOnSubmit(audit); db.SubmitChanges(); } return(RedirectToAction("Edit", new { id = id })); } catch (BrokenRuleException e) { if (user != null) { user.Detach(); } foreach (BrokenRule rule in e.BrokenRules) { ModelState.AddModelError(rule.Context.Rule.TargetProperty, rule.Message); } return(View(GetData(user))); } }
public UserViewData GetData(User user) { var userViewData = new UserViewData(); userViewData.User = user; using (var db = new TrackerDataContext()) { userViewData.Roles = UIHelper.GetRoleSelectList(null, user.RoleList.ToList()); userViewData.Audits = UIHelper.TransformAudits(db.Audit.ByUserId(user.Id).OrderByDescending(a => a.Date).ToList()); } return userViewData; }
public ActionResult UserEdit(int id) { User user = null; var userViewData = new UserViewData(); try { using (var db = new TrackerDataContext()) { var options = new DataLoadOptions(); options.LoadWith<Data.User>(u => u.UserRoleList); options.LoadWith<Data.UserRole>(u => u.Role); db.LoadOptions = options; user = db.User.GetByKey(id); UpdateModel(user); if (!db.GetChangeSet().Updates.Contains(user)) { var ruleManager = new RuleManager(); ruleManager.Run(user); if (ruleManager.BrokenRules.Count > 0) throw new BrokenRuleException(ruleManager.BrokenRules); } db.SubmitChanges(); var audit = new Audit(db.LastAudit); audit.User = user; db.Audit.InsertOnSubmit(audit); db.SubmitChanges(); } return RedirectToAction("Edit", new { id = id }); } catch (BrokenRuleException e) { if (user != null) user.Detach(); foreach (BrokenRule rule in e.BrokenRules) ModelState.AddModelError(rule.Context.Rule.TargetProperty, rule.Message); return View(GetData(user)); } }