Пример #1
0
        private static void RequestInvoiceDetails(string apiKey, string filename, InvoiceDetailType invoiceFeatures, string baseUrl, string sdkVersion, bool writeFile, IWebProxy proxy = null)
        {
            var urlString = $"{baseUrl}/invoicedetail/detect";

            // Use Proxy
            HttpClientHandler httpClientHandler = null;

            if (proxy != null)
            {
                httpClientHandler = new HttpClientHandler
                {
                    Proxy    = proxy,
                    UseProxy = true
                };
            }

            using (var client = httpClientHandler != null ? new HttpClient(httpClientHandler) : new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Add("X-ApiKey", apiKey);

                // The current version must be provided in the request!!!
                var version = sdkVersion;
                var request = CreateRequest(filename, invoiceFeatures, version);

                try
                {
                    var response     = client.PostAsync(urlString, request).Result;
                    var resultString = response.Content.ReadAsStringAsync().Result;

                    if (response.IsSuccessStatusCode)
                    {
                        Console.WriteLine($"Received response for {filename}");

                        dynamic parsedJson            = JsonConvert.DeserializeObject(resultString);
                        var     formattedResultString = JsonConvert.SerializeObject(parsedJson, Formatting.Indented);

                        if (writeFile)
                        {
                            File.WriteAllText(filename + ".json", formattedResultString);
                        }
                        else
                        {
                            Console.WriteLine();
                            Console.WriteLine(formattedResultString);
                        }
                    }
                    else
                    {
                        Console.WriteLine(response.StatusCode + "\n" + response.Content + "\n" + response.ReasonPhrase + "\n" + resultString);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
Пример #2
0
        private static StringContent CreateRequest(string filename, InvoiceDetailType invoiceFeatures, string version)
        {
            byte[] buffer;

            using (var reader = new StreamReader(filename))
            {
                buffer = new byte[reader.BaseStream.Length];
                reader.BaseStream.Read(buffer, 0, (int)reader.BaseStream.Length);
            }

            var request = new InvoiceDetailRequest
            {
                Filter  = invoiceFeatures,
                Invoice = Convert.ToBase64String(buffer),
                Version = version
            };

            var stringContent = new StringContent(request.ToJson(), Encoding.UTF8, "application/json");

            return(stringContent);
        }
Пример #3
0
        public void Initialize(List <InvoiceDetail> mainServices, InvoiceDetailType invoiceDetailType)
        {
            List_mainServices = mainServices;
            InvoiceDetailType = invoiceDetailType;

            CommonViewsActions.FillGridlookupEdit(lkeMainService, List_mainServices, "ServiceName");
            chkAccommodationServices.Checked = true;

            Service_cu accommodationService =
                Service_cu.ItemsList.Find(
                    item => Convert.ToInt32(item.ServiceType_P_ID).Equals((int)DB_ServiceType.ParentAccommodationService));

            if (accommodationService != null)
            {
                InvoiceDetail accommodationMainInvoiceDetail =
                    List_mainServices.Find(item => Convert.ToInt32(item.Service_CU_ID).Equals(Convert.ToInt32(accommodationService.ID)));
                if (accommodationMainInvoiceDetail != null)
                {
                    lkeMainService.EditValue = accommodationMainInvoiceDetail.ID;
                }
            }
        }