示例#1
0
        public void AddMessages()
        {
            var count = _messenger.GetMessageCount();

            if (count != 0)
            {
                return;
            }

            var index = 0;

            while (index++ < 50)
            {
                var message = new InvoiceMessage
                {
                    Id                = Guid.NewGuid().ToString(),
                    EventDate         = GetDate(),
                    TenantCode        = "MaritzCX",
                    ApplicationSource = "Pledge",
                    Content           = $"Invoice {index}",
                    RecordsProcessed  = GetCount(),
                    Country           = GetCountry(index),
                    Dealer            = GetDealer(index)
                };

                _messenger.AddMessage(message);
            }
        }
示例#2
0
        public void InvoiceMessage(InvoiceMessage invoiceMessage, Vendor administrativeVendor, List <OrderLine> orderLines)
        {
            StringBuilder     requestString = new StringBuilder();
            XmlWriterSettings settings      = new XmlWriterSettings();

            settings.Encoding = Encoding.UTF8;
            using (XmlWriter xw = XmlWriter.Create(requestString, settings))
            {
                xw.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\"");
                XmlSerializer           serializer = new XmlSerializer(typeof(InvoiceMessage));
                XmlSerializerNamespaces nm         = new XmlSerializerNamespaces();
                nm.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
                serializer.Serialize(xw, invoiceMessage, nm);

                XmlDocument document = new XmlDocument();
                document.LoadXml(requestString.ToString());
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(administrativeVendor.VendorSettings.GetValueByKey("EDIUrl", string.Empty));
                request.Method = "POST";

                HttpPurchasePostState state = new HttpPurchasePostState(orderLines, administrativeVendor, request, "Invoice");

                byte[] byteData = UTF8Encoding.UTF8.GetBytes(document.OuterXml);
                using (Stream s = request.GetRequestStream())
                {
                    s.Write(byteData, 0, byteData.Length);
                }

                IAsyncResult result = request.BeginGetResponse(HttpCallBack, state);
                result.AsyncWaitHandle.WaitOne();
            }
        }
示例#3
0
        public static void Build()
        {
            var trace = new TraceMessage
            {
                Id                = Guid.NewGuid().ToString(),
                EventDate         = DateTime.UtcNow,
                TenantCode        = "MaritzCX",
                ApplicationSource = "Pledge",
                Content           = "Trace",
                TotalFail         = 3,
                TotalPass         = 3,
                FileName          = "Trace file.txt",
                JobId             = Guid.NewGuid().ToString()
            };

            var incidence = new IncidenceMessage
            {
                Id                = Guid.NewGuid().ToString(),
                EventDate         = DateTime.Now,
                TenantCode        = "MaritzCX",
                ApplicationSource = "Pledge",
                Content           = $"Incidence",
                StartDate         = DateTime.UtcNow,
                EndDate           = DateTime.UtcNow,
                MachineName       = "incidence Machine"
            };

            var invoice = new InvoiceMessage
            {
                Id                = Guid.NewGuid().ToString(),
                EventDate         = DateTime.UtcNow,
                TenantCode        = "MaritzCX",
                ApplicationSource = "Pledge",
                Content           = $"Invoice",
                RecordsProcessed  = 343,
                Country           = "Japan",
                Dealer            = "Nissan"
            };

            var traceContent     = Build(trace, "cx_trace", "trace");
            var incidenceContent = Build(incidence, "cx_incidence", "incidence");
            var invoiceContent   = Build(invoice, "cx_invoice", "invoice");

            System.Console.WriteLine("Trace JSON");
            System.Console.WriteLine(traceContent);
            System.Console.WriteLine();
            System.Console.WriteLine("Incidence JSON");
            System.Console.WriteLine(incidenceContent);
            System.Console.WriteLine();
            System.Console.WriteLine("Invoice JSON");
            System.Console.WriteLine(invoiceContent);
        }
示例#4
0
        public Response SendInvoice(InvoiceMessage message)
        {
            string url = baseUrl + "sendInvoice";

            string content = Utils.Serialize(message);
            HttpResponseMessage response = client.PostAsync(url, new StringContent(content, Encoding.UTF8, "application/json")).Result;

            //if (response.StatusCode == HttpStatusCode.OK)
            //{
            string   result = response.Content.ReadAsStringAsync().Result;
            Response res    = Utils.Deserialize <Response>(result);

            return(res);
            //         }

            //       return null;
        }