示例#1
0
        public IActionResult Index(IFormFile formFile)
        {
            EdiListViewModel model = new EdiListViewModel();

            var _ediFileData = new EdiModel();

            for (int i = 0; i < Request.Form.Files.Count; i++)
            {
                try
                {
                    IFormFile currentFile = Request.Form.Files[i];

                    using (var stream = new StreamReader(currentFile.OpenReadStream()))
                    {
                        _ediFileData          = EdiParser.ParseData(stream);
                        _ediFileData.FileName = currentFile.FileName;

                        // Just for dumping in UI..
                        _ediFileData.ParsedData = JsonConvert.SerializeObject(_ediFileData);

                        model.EdiList.Add(_ediFileData);
                    };
                }
                catch (Exception ex) { }
            }

            return(View(model));
        }
示例#2
0
        internal void run()
        {
            //question 02


            var ediREsultList = EdiParser.loadFromString(util._edifactString);

            string[][] result = ediREsultList.Select(list => list.DataElements.Split(new char[] { '&' })).ToArray();
            Console.WriteLine("---------------------------------------------------------- ");
            Console.WriteLine("Question 1  ");
            Console.WriteLine("---------------------------------------------------------- ");
            foreach (var item in result)
            {
                Console.WriteLine("{" + item[0].ToString() + "," + item[1].ToString() + "}"); // Assumes a console application
            }


            Console.WriteLine(" ");
            Console.WriteLine("---------------------------------------------------------- ");
            List <string> itensToBeListed = new List <string> {
                "MWB", "TRV", "CAR"
            };

            Console.WriteLine("Question 2 ");
            Console.WriteLine("---------------------------------------------------------- ");

            string path = Path.GetFullPath("../../../ABM/XML/Question2.xml");

            var resultQuestion2 = ExtractXML.LoadFromString(path, "Reference", "RefCode", itensToBeListed);

            foreach (var it in resultQuestion2)
            {
                Console.WriteLine("{" + it.Identifier + "," + it.value + "}");
            }


            Console.WriteLine(" ");
            Console.WriteLine("Question 3 ");
            Console.WriteLine("---------------------------------------------------------- ");

            string path3   = Path.GetFullPath("../../../ABM/XML/Question3.xml");
            string pathxsd = Path.GetFullPath("../../../ABM/XML/Question3.xsd");

            //     var b = XmlValidatorToXSD.load(path3);
            ServiceReference1.IService1 obj = new ServiceReference1.Service1Client();
            int resultQuestion3             = obj.ValidationXml(path3, pathxsd);

            Console.WriteLine("{" + resultQuestion3 + "}");  // Assumes a console application

            Console.ReadLine();
        }
示例#3
0
        public void TestMethod1()
        {
            string edifactString = @"UNA:+.? 
                                    'UNB + UNOC:3 + 2021000969 + 4441963198 + 180525:1225 + 3VAL2MJV6EH9IX + KMSV7HMD + CUSDECU - IE++1++1'
                                    UNH + EDIFACT + CUSDEC:D: 96B: UN: 145050'
                                    BGM + ZEM:::EX + 09SEE7JPUV5HC06IC6 + Z'
                                    LOC + 17 + IT044100+555'
                                    LOC + 18 + SOL+456'
                                    LOC + 35 + SE'
                                    LOC + 36'
                                    LOC + 116 + SE003033'
                                    DTM + 9:20090527:102'
                                    DTM + 268:20090626:102'
                                    DTM + 182:20090527:102'";

            var tes = EdiParser.loadFromString(edifactString);
        }
        public async Task <ActionResult <Order> > PostOrder([FromBody] PostOrderDTO order)
        {
            var orderToAdd = new Order
            {
                SellDate     = DateTime.Now,
                ShallDisplay = true,
                OrderState   = OrderState.New,
                InvoiceId    = null,
                OrderValue   = 0.0M,
                Username     = order.Invoice.Username
            };

            List <Product> products = new List <Product>();

            foreach (var item in order.PostOrders)
            {
                var product = await productService.GetByIdAsync(item.ProductId);

                products.Add(product);
                orderToAdd.OrderValue += (product.NettoPrice + decimal.Divide(product.VAT, 100) * product.NettoPrice) * item.QuantityOfProducts;
            }

            var placedOrder = await orderService.CreateOrder(orderToAdd);

            var orderItems = new List <OrderItem>();

            foreach (var product in products)
            {
                var orderItem = new OrderItem
                {
                    OrderId   = placedOrder.OrderId,
                    ProductId = product.ProductId
                };
                foreach (var item in order.PostOrders)
                {
                    if (item.ProductId == product.ProductId)
                    {
                        orderItem.Amount       = item.QuantityOfProducts;
                        orderItem.NettoPrice   = product.NettoPrice * item.QuantityOfProducts;
                        orderItem.BruttoPrice += (product.NettoPrice + decimal.Divide(product.VAT, 100) * product.NettoPrice) * item.QuantityOfProducts;
                    }
                }
                await orderItemService.CreateOrderItem(orderItem);

                orderItems.Add(orderItem);
            }

            EdiParser ediParser        = new EdiParser();
            var       mappedOrderItems = mapper.Map <List <OrderItem>, List <GetOrderItemForXml> >(orderItems);
            var       invoice          = await CreateInvoice(placedOrder.OrderId, order.Invoice);

            var invoiceXml = new XmlInvoice(invoice.InvoiceId, invoice.IssueDate, invoice.DeliveryDate,
                                            SynthPolInfo.supplierName, SynthPolInfo.supplierStreet, SynthPolInfo.supplierCity, SynthPolInfo.supplierZipCode, SynthPolInfo.supplierNIP,
                                            invoice.Name, invoice.Street, invoice.ZipCode, invoice.City, invoice.NIP, mappedOrderItems);
            YAXSerializer serializer      = new YAXSerializer(typeof(XmlInvoice));
            string        xmlString       = serializer.Serialize(invoiceXml);
            var           invoiceEdiToAdd = new InvoiceEdi
            {
                Username  = invoice.Username,
                InvoiceId = invoice.InvoiceId,
                EdiString = ediParser.Save(invoice.InvoiceId.ToString(), invoice.IssueDate.ToString(), invoice.DeliveryDate.ToString(),
                                           SynthPolInfo.supplierName, SynthPolInfo.supplierStreet, SynthPolInfo.supplierZipCode, SynthPolInfo.supplierCity,
                                           SynthPolInfo.supplierNIP, invoice.Name, invoice.Street, invoice.ZipCode, invoice.City, invoice.NIP, orderItems),
                XmlString = xmlString
            };

            var invoiceEdi = await invoiceEdiService.CreateInvoiceEdi(invoiceEdiToAdd);

            var newOrder = placedOrder;

            newOrder.InvoiceId = invoice.InvoiceId;
            await orderService.UpdateOrder(placedOrder, newOrder);

            var newInvoice = invoice;

            newInvoice.InvoiceEdiId = invoiceEdi.InvoiceEdiId;
            await invoiceService.UpdateInvoice(invoice, newInvoice);

            return(Ok());
        }