Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        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"));
        }
Exemplo n.º 3
0
        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"));
            }
        }