public ActionResult Edit(string id)
        {
            var serializer = ProcessingEngine.Instance.Container.Resolve<ISerializer>();

            //Получение правила
            var ruleRepository = new Orm.OrmLiteRepository<Rule>();
            ProcessingRule rule = ruleRepository.GetById(new Guid(id)).Cast();

            RuleEditViewModel model = GetEditViewModel();
            model.ProcessingRule = rule;

            return View(model);
        }
        public JsonResult Save([ModelBinder(typeof(SaveRuleResponseBinder))] SaveRuleResponse response)
        {
            RuleEditMode mode = RuleEditMode.Edit;
            if (response.RuleId == Guid.Empty)
                mode = RuleEditMode.Create;

            //var serializer = ProcessingEngine.Instance.Container.Resolve<ISerializer>();

            Rule rule;
            var ruleRepository = new Orm.OrmLiteRepository<Rule>();

            switch (mode)
            {
                case RuleEditMode.Create:
                    rule = new Rule();
                    break;
                case RuleEditMode.Edit:
                    rule = ruleRepository.GetById(response.RuleId);
                    break;
                default:
                    rule = new Rule();
                    break;
            }

            //TODO Можно было бы биндить напрямую в Rule, если бы не RuleId
            rule.Name = response.Name;
            rule.ActivateBonusInDays = response.ActivateInDays;
            if(!response.ActivateInDate.Equals(DateTime.MinValue))
            {
                rule.ActivateInDate = response.ActivateInDate;
            }

            rule.ActivateOnCharge = response.ActivateOnCharge;
            rule.BonusLifeTime = response.BonusLifeTime;

            if (!response.LifeTimeFrom.Equals(DateTime.MinValue))
            {
                rule.LifeTimeFrom = response.LifeTimeFrom;
            }

            if (!response.LifeTimeTo.Equals(DateTime.MinValue))
            {
                rule.LifeTimeTo = response.LifeTimeTo;
            }

            rule.Priority = response.Priority;
            rule.Production = response.Production;
            rule.Sandbox = response.Sandbox;

            rule.Conditions = response.Conditions;
            rule.LocalActions = response.LocalActions;
            rule.LocalRestrictions = response.LocalRestrictions;

            switch (mode)
            {
                case RuleEditMode.Edit:
                    ruleRepository.Update(rule);
                    break;
                default:
                    ruleRepository.Add(rule);
                    break;
            }

            return Json("Success save");
        }
 // GET: Rules/Delete/5
 public ActionResult Delete(Guid id)
 {
     var ruleRepository = new Orm.OrmLiteRepository<Rule>();
     ruleRepository.Delete(ruleRepository.GetById(id));
     return RedirectToAction("Index");
 }