public ActionResult CreateWithRows([Bind(Include = "CompanyId,Date,CurrencyISOCode,Items")] HumDistributionPlan plan) { if (plan.Items == null) { ModelState.AddModelError("", "Добавьте строки"); } else { foreach (var item in plan.Items) { if (item.ConsumerId == 0) { ModelState.AddModelError("", "Потребитель не указан"); } if (item.AreaId == 0) { ModelState.AddModelError("", "Область не указана"); } if (item.ProductId == 0) { ModelState.AddModelError("", "Товар / Продукт / Изделие не указано"); } if (item.UnitTypeId == 0) { ModelState.AddModelError("", "Ед. измерения не указана"); } if (item.Amount <= 0) { ModelState.AddModelError("", "Кол-во не задано"); } if (item.Sum <= 0) { ModelState.AddModelError("", "Сумма не задана"); } } } if (ModelState.IsValid) { var humPlan = new HumDistributionPlan { CompanyId = plan.CompanyId, CurrencyISOCode = plan.CurrencyISOCode, Date = plan.Date }; db.HumDistributionPlans.Add(humPlan); foreach (var planItem in plan.Items) { planItem.HumDistributionPlanId = humPlan.Id; db.HumDistributionPlanItems.Add(planItem); } db.SaveChanges(); return(RedirectToAction("Details", new { id = humPlan.Id })); } plan.Company = db.Companies.Find(plan.CompanyId); plan.Items = plan.Items == null ? new List <HumDistributionPlanItem>() : plan.Items; var xmldoc = new XmlDocument(); string urlOrigin = "http://www.nbkr.kg/XML/CurrenciesReferenceList.xml"; string urlFake = Server.MapPath("~/Doc/CurrenciesReferenceList.xml"); string url = urlFake; if (ConfigurationManager.AppSettings.AllKeys.Contains("HasInternetConnection") && ConfigurationManager.AppSettings["HasInternetConnection"] == "yes") { url = urlOrigin; } xmldoc.Load(url); var xdoc = DocumentExtensions.ToXDocument(xmldoc); ViewBag.CurrencyISOCode = from c in xdoc.Root.Elements() select new SelectListItem { Text = " " + c.Attribute("ISOCode").Value + " ", Value = c.Attribute("ISOCode").Value, Selected = c.Attribute("ISOCode").Value == plan.CurrencyISOCode }; var consumers = db.Consumers.ToList(); consumers.Insert(0, new Consumer()); ViewBag.ConsumerId = new SelectList(consumers, "Id", "Name"); var products = db.Products.ToList(); products.Insert(0, new Product()); ViewBag.ProductId = new SelectList(products, "Id", "Name"); var areas = db.Areas.ToList(); areas.Insert(0, new Area()); ViewBag.AreaId = new SelectList(areas, "Id", "Name"); var unitTypes = db.UnitTypes.ToList(); unitTypes.Insert(0, new UnitType()); ViewBag.UnitTypeId = new SelectList(unitTypes, "Id", "Name"); return(View(plan)); }