diff --git a/src/ElectronicPharmacy/Classes/ApiClient.cs b/src/ElectronicPharmacy/Classes/ApiClient.cs index ca8864e..567852f 100644 --- a/src/ElectronicPharmacy/Classes/ApiClient.cs +++ b/src/ElectronicPharmacy/Classes/ApiClient.cs @@ -25,7 +25,8 @@ namespace Электронная_Фармация.Classes _baseUrl = AppConfig.NormalizeApiBaseUrl(baseUrl ?? AppConfig.ApiBaseUrl); _httpClient = new HttpClient { - Timeout = TimeSpan.FromSeconds(60) + // Крупный прайс тянем одним запросом — даём серверу время посчитать и отдать. + Timeout = TimeSpan.FromSeconds(120) }; AppDebugLog.Info("ApiClient", $"Создан клиент. BaseUrl={_baseUrl}, Timeout={_httpClient.Timeout.TotalSeconds}s"); diff --git a/src/ElectronicPharmacy/HelpForms/HF_DownloadDataFromServer.cs b/src/ElectronicPharmacy/HelpForms/HF_DownloadDataFromServer.cs index 02e233b..6f0a8e0 100644 --- a/src/ElectronicPharmacy/HelpForms/HF_DownloadDataFromServer.cs +++ b/src/ElectronicPharmacy/HelpForms/HF_DownloadDataFromServer.cs @@ -106,8 +106,12 @@ namespace Электронная_Фармация.HelpForms ? null : Settings.Default.RegionId; - const int pageSize = 5000; - const int maxPages = 100; // страховка от бесконечного цикла (до 500k позиций) + // Тянем весь прайс одним запросом: постраничный OFFSET на тяжёлом + // сводном запросе валит сервер на глубоких страницах. Один запрос = + // один расчёт выборки. Страховка-цикл остаётся на случай, если позиций + // окажется больше pageSize. + const int pageSize = 200000; + const int maxPages = 100; var combined = new PriceSummaryResponse { Summary = new List() };