public ActionResult Create() { var uManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var userInfo = uManager.FindByNameAsync(User.Identity.Name).GetAwaiter().GetResult(); var model = new HumDistributionPlan(); if (userInfo.Companies.Count > 0) { model.CompanyId = userInfo.Companies.First().Id; model.Company = userInfo.Companies.First(); 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.Currencies = from c in xdoc.Root.Elements() select c.Attribute("ISOCode").Value; } else { return(RedirectToAction("Create", "Companies", new { userId = userInfo.Id, returnUrl = Request.Path })); } return(View(model)); }
public CurrencyRates GetCurrencyRates() { var xmldoc = new XmlDocument(); string urlOrigin = "http://www.nbkr.kg/XML/daily.xml"; string urlFake = Server.MapPath("~/Doc/daily.xml"); string url = urlFake; if (ConfigurationManager.AppSettings["HasInternetConnection"] == "yes") { url = urlOrigin; } xmldoc.Load(url); var xdoc = DocumentExtensions.ToXDocument(xmldoc); var CurrencyRates = new CurrencyRates { Name = xdoc.Root.Attribute("Name").Value.ToString(), Date = xdoc.Root.Attribute("Date").Value.ToString() }; CurrencyRates.List = new List <Currency>(); foreach (var rate in xdoc.Root.Elements()) { var isoCode = rate.Attribute("ISOCode").Value; var nominal = rate.Element("Nominal").Value; var value = rate.Element("Value").Value.Replace(',', '.'); var currency = new Currency(); currency.ISOCode = isoCode; int nominalInt; if (int.TryParse(nominal, out nominalInt)) { currency.Nominal = nominalInt; } else { throw new Exception("Can't convert to int: " + nominal); } decimal valueDec; if (decimal.TryParse(value, out valueDec)) { currency.Value = valueDec; } else if (decimal.TryParse(value.Replace('.', ','), out valueDec)) { currency.Value = valueDec; } else { throw new Exception("Can't convert to decimal: " + value); } CurrencyRates.List.Add(currency); } return(CurrencyRates); }
/*[HttpPost] * [ValidateAntiForgeryToken] * public ActionResult Create(HttpPostedFileBase FileUpload, [Bind(Include = "Id,CompanyId,Date,CurrencyISOCode")] HumDistributionPlan humDistributionPlan) * { * List<string> messages = new List<string>(); * var planItems = new List<HumDistributionPlanItem>(); * if (ModelState.IsValid) * { * if (FileUpload != null) * { * if (FileUpload.ContentType == "application/vnd.ms-excel" || FileUpload.ContentType == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") * { * string filename = FileUpload.FileName; * string targetpath = Server.MapPath("~/TempDoc/"); * FileUpload.SaveAs(targetpath + filename); * string pathToExcelFile = targetpath + filename; * var connectionString = ""; * if (filename.EndsWith(".xls")) * { * connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", pathToExcelFile); * } * else if (filename.EndsWith(".xlsx")) * { * connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", pathToExcelFile); * } * string sheetName = "План распределения"; * var adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "$]", connectionString); * var ds = new DataSet(); * * adapter.Fill(ds, "ExcelTable"); * * DataTable dtable = ds.Tables["ExcelTable"]; * * * * var excelFile = new ExcelQueryFactory(pathToExcelFile); * var humDistributionPlanItems = from a in excelFile.Worksheet<HumDistributionPlanItemModel>(sheetName) select a; * var units = db.UnitTypes.ToList(); * * foreach (var item in humDistributionPlanItems) * { * try * { * var unitStr = item.Unit; * * var unitType = units.FirstOrDefault(x => x.Name.ToLower() == unitStr.ToLower()); * if (item.Consumer != "" && * item.Address != "" && * item.Region != "" && * item.ProductName != "" && * item.Unit != "" && * item.Amount != null && * item.Sum != null && * unitType != null) * { * HumDistributionPlanItem objItem = new HumDistributionPlanItem(); * objItem.Consumer = item.Consumer; * objItem.Address = item.Address; * objItem.Region = item.Region; * objItem.ProductName = item.ProductName; * objItem.Amount = item.Amount; * objItem.Sum = item.Sum; * objItem.UnitTypeId = unitType.Id; * * planItems.Add(objItem); * } * else * { * if (item.Consumer == "" || item.Consumer == null) messages.Add("Поле Consumer не может быть пустым"); * if (item.Region == "" || item.Region == null) messages.Add("Поле Region не может быть пустым"); * if (item.ProductName == "" || item.ProductName == null) messages.Add("Поле ProductName не может быть пустым"); * if (item.Amount == null) messages.Add("Поле Amount не может быть пустым"); * if (item.Sum == null) messages.Add("Поле Sum не может быть пустым"); * if (unitType == null) messages.Add("Поле Unit не может быть пустым, или оно не найдено в справочнике"); * } * } * * catch (DbEntityValidationException ex) * { * foreach (var entityValidationErrors in ex.EntityValidationErrors) * { * * foreach (var validationError in entityValidationErrors.ValidationErrors) * { * * Response.Write("Свойство: " + validationError.PropertyName + " Текст ошибки: " + validationError.ErrorMessage); * * } * * } * } * } * //deleting excel file from folder * if ((System.IO.File.Exists(pathToExcelFile))) * { * System.IO.File.Delete(pathToExcelFile); * } * } * else * { * messages.Add("Только Excel-формат доступен."); * } * } * * if (messages.Count == 0) * { * db.Database.BeginTransaction(); * try * { * db.HumDistributionPlans.Add(humDistributionPlan); * db.SaveChanges(); * foreach (var item in planItems) * { * item.HumDistributionPlanId = humDistributionPlan.Id; * db.HumDistributionPlanItems.Add(item); * db.SaveChanges(); * } * db.Database.CurrentTransaction.Commit(); * return RedirectToAction("Details", new { id = humDistributionPlan.Id }); * } * catch (Exception e) * { * messages.Add("Error on saving items: " + e.Message); * db.Database.CurrentTransaction.Rollback(); * } * finally * { * db.Database.Connection.Close(); * } * } * } * ViewBag.Messages = messages.ToArray(); * humDistributionPlan.Company = db.Companies.Find(humDistributionPlan.CompanyId); * * * 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.Currencies = from c in xdoc.Root.Elements() * select c.Attribute("ISOCode").Value; * * return View(humDistributionPlan); * } */ public ActionResult CreateWithRows() { var uManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var userInfo = uManager.FindByNameAsync(User.Identity.Name).GetAwaiter().GetResult(); var model = new HumDistributionPlan { Items = new List <HumDistributionPlanItem> { new HumDistributionPlanItem() } }; if (userInfo.Companies.Count > 0) { model.CompanyId = userInfo.Companies.First().Id; model.Company = userInfo.Companies.First(); 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 }; 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"); } else { return(RedirectToAction("Create", "Companies", new { userId = userInfo.Id, returnUrl = Request.Path })); } return(View(model)); }
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)); }