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