示例#1
0
        public static async Task Run(ApiHttpClient client, string xmlFileLocation, bool isValidationOnly, int requestTimeoutSeconds)
        {
            // Build Body
            var xmlString    = File.ReadAllText(xmlFileLocation);
            var bodyParmeter = new CompanySynchronizeParameter
            {
                XmlContent = xmlString
            };

            // Request and await response
            var companyImportResponse = await new Client.Requests.CompanySynchronizeRequest(isValidationOnly, requestTimeoutSeconds, bodyParmeter).LoadResultAsync(client);

            // Duration string
            var duration       = TimeSpan.FromMilliseconds(client.ElapsedMillisecondsInLastCall);
            var durationString = $"Request took {(int)duration.TotalMinutes}min {duration.Seconds}sec.";

            // Result string
            var resultString = RecursiveResultStringBuilder(companyImportResponse.Result);

            // Stati string
            var statiString = SplitEnumFlags <StatusType>(companyImportResponse.Status).Aggregate(string.Empty, (s, status) => $"{status}, ");

            // Build result string
            var sb = new StringBuilder();

            sb.AppendLine("========== Duration ==========");
            sb.AppendLine(durationString);
            sb.AppendLine(string.Empty);
            sb.AppendLine("========== Result Stati ==========");
            sb.AppendLine(statiString);
            sb.AppendLine(string.Empty);
            sb.AppendLine("========== Result Import Logs ==========");
            sb.AppendLine(resultString);
            var x = sb.ToString();

            // Print response result
            var logFileName = Path.Combine(Environment.CurrentDirectory, $"CompanyImport_LogInfo_{DateTime.Now.ToString("yyyyMMdd_HHmmss")}.txt");

            File.WriteAllText(logFileName, x);

            Console.WriteLine(durationString);
            Console.WriteLine($"See '{logFileName}' for logged information.");
        }
 public CompanySynchronizeRequest(bool isValidationOnly, int requestTimeoutSeconds, CompanySynchronizeParameter parameter) :
     base("Api/Synchronize/Company?isValidationOnly=" + isValidationOnly + "&requestTimeoutSeconds=" + requestTimeoutSeconds, parameter)
 {
 }