public StopwatchWrapper(AvgTimer timer) { _timer = timer; _stopwatch = new Stopwatch(); }
public void SpeedTest(string database, string userName, string password) { var emptyLogger = new EmptyLogger(); using (var logger = new Logger("Speedtest")) { // Authorize this.Request(emptyLogger, null, "Authorization/", WebMethod.PUT, new ApiAuthorize() { Username = userName, Password = password, Database = database }); logger.WriteLine("Running a speedtest."); logger.WriteLine("1. Loading items via PurchaseSinceDate"); // - Requesting purchases of today this.Request(emptyLogger, $"Temp/Purchases", $"PurchaseSinceDate/{DateTime.Now.ToString("yyyyMMdd")}", WebMethod.GET, null); // Reading purchase Id's from request var retrievedFile = string.Join("\r\n", File.ReadAllLines(@"Temp/Purchases.json")); var purchaseIds = JArray.Parse(retrievedFile) .Where(a => a.Type == JTokenType.Object) .Select(a => ((JObject)a).Value <string>("Id")) .ToList(); logger.WriteLine($" - Retrieved {purchaseIds.Count} items"); // Fetching ListArticleSort items: { var items = Math.Min(purchaseIds.Count, 50); logger.WriteLine($"2. Fetching {items} items, 100 times, using /ListArticleSort to get complete information of {items} items (name, description etc):"); var avgTimer = new AvgTimer(); for (var x = 0; x < 100; x++) { var timer = avgTimer.StartNew(); this.Request(emptyLogger, null, "ListArticleSort", WebMethod.PUT, new ApiListArticleSort() { ListArticleSorts = purchaseIds.Take(items) }); timer.Stop(); Console.Write("."); } Console.WriteLine(); var times = avgTimer.GetTimes(); logger.WriteLine($" - avg: {times.Average()}ms, max: {times.Max()}ms, min: {times.Min()}ms"); } // Fetching DebtorListArticleSortPrice items: { var items = Math.Min(purchaseIds.Count, 25); logger.WriteLine($"3. Fetching {items} items, 100 times, using /DebtorListArticleSortPrice to get stock/price information:"); var avgTimer = new AvgTimer(); for (var x = 0; x < 100; x++) { var timer = avgTimer.StartNew(); this.Request(emptyLogger, null, "DebtorListArticleSortPrice", WebMethod.PUT, new ApiDebtorListArticleSortPrice() { DebtorId = 6340, // 000723 ListArticleSorts = purchaseIds.Take(items) }); timer.Stop(); Console.Write("."); } Console.WriteLine(); var times = avgTimer.GetTimes(); logger.WriteLine($" - avg: {times.Average()}ms, max: {times.Max()}ms, min: {times.Min()}ms"); } } }