コード例 #1
0
        public async Task <Check> CheckApi(CheckSettings settings, DeliveryPointsRequest requestModel)
        {
            var result = new Check {
                Settings = settings
            };

            result.State.LastCheckTime = DateTime.Now;

            return(await PerformCheck(settings.EnvironmentId, result, requestModel));
        }
コード例 #2
0
        private async Task <Check> PerformCheck(int environmentId, Check check, DeliveryPointsRequest requestModel)
        {
            check.State.Status = StatusesEnum.CRITICAL;

            var address = new EnvironmentHelper().GetApiUrl(environmentId);
            var query   = $"{address}/api/delivery/points";

            var response = _httpService.PerformPostRequest(query, timeOut, requestModel);

            var result = response.Result;

            if (!result.IsSuccessStatusCode)
            {
                check.State.Description = "Полученный статус-код для точек выдачи: " + result.StatusCode;
                return(check);
            }

            try
            {
                var responseContent = await result.Content.ReadAsStringAsync();

                var settlementsResponseModel = JsonConvert.DeserializeObject <ApiResponse <List <DeliveryPointModel> > >(responseContent);

                if (!settlementsResponseModel.Success)
                {
                    var errorsStr = string.Join(".", settlementsResponseModel.Errors);
                    check.State.Description = "Ошибка получения точек выдачи: " + errorsStr;
                    return(check);
                }

                if (settlementsResponseModel?.Data?.Count == 0)
                {
                    check.State.Description = "Получен пустой список точек выдачи";
                    return(check);
                }
            }
            catch (Exception e)
            {
                check.State.Description = "Исключение во время получения точек выдачи: " + e.Message;
            }

            check.State.Status      = StatusesEnum.OK;
            check.State.Description = "Проблем не обнаружено";

            return(check);
        }
コード例 #3
0
        public async Task <CommandResult> Handle(DeliveryAutoPointsCheckCommand request, CancellationToken cancellationToken)
        {
            var result = new CommandResult {
                Success = true
            };
            var check = new DeliveryPointsCheck(_httpService);

            var requestModel = new DeliveryPointsRequest
            {
                CityKey           = "4577d856-322b-e311-8b0d-00155d037960",
                DeliveryMethodKey = 4,
                LanguageId        = 2,
                PaymentMethodId   = 21,
                RegionId          = 57
            };

            result.CheckModel = await check.CheckApi(request.CheckSettings, requestModel);

            return(result);
        }
コード例 #4
0
        public async Task <CommandResult> Handle(NovaPoshtaPointsCheckCommand request, CancellationToken cancellationToken)
        {
            var result = new CommandResult {
                Success = true
            };
            var check = new DeliveryPointsCheck(_httpService);

            var requestModel = new DeliveryPointsRequest
            {
                CityKey           = "e71f8842-4b33-11e4-ab6d-005056801329",
                DeliveryMethodKey = 3,
                LanguageId        = 2,
                PaymentMethodId   = 21,
                RegionId          = 57
            };

            result.CheckModel = await check.CheckApi(request.CheckSettings, requestModel);

            return(result);
        }
コード例 #5
0
        public async Task <CommandResult> Handle(StoAutodocPointsCheckCommand request, CancellationToken cancellationToken)
        {
            var result = new CommandResult {
                Success = true
            };
            var check = new DeliveryPointsCheck(_httpService);

            var requestModel = new DeliveryPointsRequest
            {
                CityKey           = "10763",
                DeliveryMethodKey = 5,
                DistrictId        = 598,
                LanguageId        = 2,
                PaymentMethodId   = 21,
                RegionId          = 57
            };

            result.CheckModel = await check.CheckApi(request.CheckSettings, requestModel);

            return(result);
        }