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"); }