// --- атрибуты ---------------------------------------------------------------------------- public ActionResult Attrs(int tableID, string tableName) { using (AttrContext db = new AttrContext("cs_xam")) { var attrs = (from a in db.Attrs where a.table_id == tableID select a).ToList<Attr>(); ViewBag.tableID = tableID; ViewBag.tableName = tableName; return PartialView( "_Attrs", attrs); } }
public ActionResult CreateAttr(Attr model, long tableID, string tableName) { ViewBag.tableID = tableID; ViewBag.tableName = tableName; using (AttrContext db = new AttrContext("cs_xam")) { if (ModelState.IsValid) { // нет длины if (model.length == null && model.length_fn == null) { ModelState.AddModelError("Ошибка", "Должна быть указана точная длина значения или её НЧ."); return View(model); } // и точное, и НЧ if (model.length != null && model.length_fn != null) { ModelState.AddModelError("Ошибка", "Должна быть указана или точная длина значения, или её НЧ, но не оба значения сразу."); return View(model); } // проверка НЧ длины по формату if (!string.IsNullOrEmpty(model.length_fn) && !Regex.Match(model.length_fn, @"^\d+;\d+;\d+;\d+$").Success) { ModelState.AddModelError("Ошибка", "Нечёткое число длины должно быть в формате \"d;d;d;d\", где \"d\" - это целое число. Например: 4;6;9;12"); return View(model); } // нет мощности if (model.power == null && model.power_fn == null) { ModelState.AddModelError("Ошибка", "Должно быть указано точное значение мощности или его НЧ."); return View(model); } // и точное, и НЧ if (model.power != null && model.power_fn != null) { ModelState.AddModelError("Ошибка", "Должно быть указано или точное значение мощности, или его НЧ, но не оба значения сразу."); return View(model); } // проверка НЧ длины по формату if (!string.IsNullOrEmpty(model.power_fn) && !Regex.Match(model.power_fn, @"^\d+;\d+;\d+;\d+$").Success) { ModelState.AddModelError("Ошибка", "Нечёткое число мощности должно быть в формате \"d;d;d;d\", где \"d\" - это целое число. Например: 4;6;9;12"); return View(model); } model.table_id = tableID; db.Attrs.Add(model); db.SaveChanges(); //logger.Info(string.Format("Создан атрибут [{0}]", model.id_attr)); return RedirectToAction("Index"); } else { return View(model); } } }
public ActionResult EditAttr(Attr model) { using (AttrContext db = new AttrContext("cs_xam")) { if (db.Attrs.Any(a => a.id_attr == model.id_attr)) { if (ModelState.IsValid) { // нет длины if (model.length == null && model.length_fn == null) { ModelState.AddModelError("Ошибка", "Должна быть указана точная длина значения или её НЧ."); return View(model); } // и точное, и НЧ if (model.length != null && model.length_fn != null) { ModelState.AddModelError("Ошибка", "Должна быть указана или точная длина значения, или её НЧ, но не оба значения сразу."); return View(model); } // проверка НЧ длины по формату if (!string.IsNullOrEmpty(model.length_fn) && !Regex.Match(model.length_fn, @"^\d+;\d+;\d+;\d+$").Success) { ModelState.AddModelError("Ошибка", "Нечёткое число длины должно быть в формате \"d;d;d;d\", где \"d\" - это целое число. Например: 4;6;9;12"); return View(model); } // нет мощности if (model.power == null && model.power_fn == null) { ModelState.AddModelError("Ошибка", "Должно быть указано точное значение мощности или его НЧ."); return View(model); } // и точное, и НЧ if (model.power != null && model.power_fn != null) { ModelState.AddModelError("Ошибка", "Должно быть указано или точное значение мощности, или его НЧ, но не оба значения сразу."); return View(model); } // проверка НЧ длины по формату if (!string.IsNullOrEmpty(model.power_fn) && !Regex.Match(model.power_fn, @"^\d+;\d+;\d+;\d+$").Success) { ModelState.AddModelError("Ошибка", "Нечёткое число мощности должно быть в формате \"d;d;d;d\", где \"d\" - это целое число. Например: 4;6;9;12"); return View(model); } db.Entry(model).State = EntityState.Modified; db.SaveChanges(); //logger.Info(string.Format("Изменён атрибут [{0}]", model.id_attr)); return RedirectToAction("Index"); } else { return View(model); } } else { ModelState.AddModelError("Ошибка", "В вашей таблице нет такого атрибута."); return View(model); } } }
public ActionResult EditAttr(long id, long tableID) { using (AttrContext db = new AttrContext("cs_xam")) { if (db.Attrs.Any(a => a.id_attr == id && a.table_id == tableID)) { var attr = (from a in db.Attrs where a.id_attr == id select a).First(); return View(attr); } else { ModelState.AddModelError("Ошибка", "В этой таблице нет такого атрибута."); return RedirectToAction("Index"); } } }
public ActionResult DeleteAttr(int id, long tableID) { try { using (AttrContext db = new AttrContext("cs_xam")) { if (db.Attrs.Any(a => a.id_attr == id && a.table_id == tableID)) { var attr = (from a in db.Attrs where a.id_attr == id select a).First(); db.Attrs.Remove(attr); db.SaveChanges(); //logger.Info(string.Format("Удалён атрибут [{0}]", id)); } else { throw new Exception("В этой таблице нет такого атрибута"); } } } catch (Exception ex) { logger.Error(string.Format("Не удалось удалить атрибут [{0}]. {1}", id, ex.Message)); ModelState.AddModelError("Ошибка", string.Format("Не удалось удалить атрибут. {0}", ex.Message)); } //TableContext dbTables = new TableContext("cs_xam"); //var userTables = (from t in dbTables.Tables where t.scenario_id == scenarioID select t); //return View("Index", userTables); return RedirectToAction("Index"); }