public IActionResult Fsave(string clientId) { //string path = AppDomain.CurrentDomain.BaseDirectory + "download/listofordersid.csv"; string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); List <OrderNoId> orderNoIds = new List <OrderNoId>(); foreach (var item in _context.Orders.ToList().Where(i => i.clientId == clientId)) { OrderNoId orderNoId = new OrderNoId(); orderNoId.Client_Id = item.clientId; orderNoId.Request_id = item.requestId; orderNoId.Name = item.name; orderNoId.Price = item.price; orderNoId.Quantity = item.quantity; orderNoIds.Add(orderNoId); } int version = 1; string file = path + "/listoforders-" + clientId + ".csv"; while (System.IO.File.Exists(file)) { version++; file = path + "/listoforders-" + clientId + "(" + version.ToString() + ").csv"; } using (var writer = new StreamWriter(file)) using (var csv = new CsvWriter(writer)) { //csv.WriteRecords(_context.Orders.ToList().Where(i => i.clientId == clientId)); csv.WriteRecords(orderNoIds); } return(RedirectToAction("Index")); }
public IActionResult Esave() { string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); List <OrderNoId> orderNoIds = new List <OrderNoId>(); foreach (var item in _context.Orders) { OrderNoId orderNoId = new OrderNoId(); orderNoId.Client_Id = item.clientId; orderNoId.Request_id = item.requestId; orderNoId.Name = item.name; orderNoId.Price = item.price; orderNoId.Quantity = item.quantity; orderNoIds.Add(orderNoId); } int version = 0; string file = path + "/listoforders.csv"; while (System.IO.File.Exists(file)) { version++; file = path + "/listoforders(" + version.ToString() + ").csv"; } using (var writer = new StreamWriter(file)) using (var csv = new CsvWriter(writer)) { csv.WriteRecords(orderNoIds); } return(RedirectToAction("Index")); }
public async Task <IActionResult> Post([Bind("Id,clientId,requestId,name,quantity,price")] Order order, List <IFormFile> files) { List <Order> Templist = new List <Order>(); bool exception_bool = false; Order oneOrderEx = new Order(); foreach (var file in files) { if (file.FileName.Contains(".json")) { indexOfOrder = 0; var result = string.Empty; using (var reader = new StreamReader(file.OpenReadStream())) { result = reader.ReadToEnd(); } try { var json = JsonConvert.DeserializeObject <OrderList>(result); foreach (var item in json.OrdersList.ToList()) { JsonXml(ref exception_bool, ref oneOrderEx, file, item); } } catch { exception_bool = true; expecion_string.Add("Błąd w pliku " + file.FileName); } } if (file.FileName.Contains(".xml")) { indexOfOrder = 0; var result = string.Empty; using (var reader = new StreamReader(file.OpenReadStream())) { result = reader.ReadToEnd(); } try { XmlSerializer serializer = new XmlSerializer(typeof(List <request>), new XmlRootAttribute("requests")); StringReader stringReader = new StringReader(result); List <request> productList = (List <request>)serializer.Deserialize(stringReader); List <Order> orders = new List <Order>(); foreach (var item in productList) { orders.Add(new Order { clientId = item.clientId, requestId = item.requestId, name = item.name, quantity = item.quantity, price = item.price }); } foreach (var item in orders) { JsonXml(ref exception_bool, ref oneOrderEx, file, item); } await _context.SaveChangesAsync(); } catch { exception_bool = true; expecion_string.Add("Błąd w pliku " + file.FileName); } } if (file.FileName.Contains(".csv")) { var regClientId = new Regex(@"^(?=.{1,6}$)^[a-zA-Z0-9]*$"); var regName = new Regex(@"^(?=.{1,255}$)"); try { indexOfOrder = 0; using (var reader = new StreamReader(file.OpenReadStream())) using (var csv = new CsvReader(reader)) { OrderNoId orderNoId = new OrderNoId(); var records = csv.EnumerateRecords(orderNoId); foreach (var item in records) { indexOfOrder++; if (regClientId.IsMatch(item.Client_Id) && item.Request_id != 0 && regName.IsMatch(item.Name)) { Order oneOrder = new Order(); oneOrder.clientId = item.Client_Id; oneOrder.requestId = item.Request_id; oneOrder.quantity = item.Quantity; oneOrder.price = item.Price; oneOrder.name = item.Name; _context.Add(oneOrder); _context.SaveChanges(); } else { exception_bool = true; expecion_string.Add("Błąd w pliku " + file.FileName + " w rekordzie " + indexOfOrder.ToString()); } } } await _context.SaveChangesAsync(); } catch { exception_bool = true; expecion_string.Add("Błąd w pliku " + file.FileName); } } } if (exception_bool) { return(RedirectToAction("Error", new { error_string = expecion_string })); } else { return(RedirectToAction("Index")); } }