Example #1
0
        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);
                }
            }
        }
Example #2
0
        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);
                }
            }
        }