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) { }