public void UpdateFastPaymentStatus(FastPayment fastPayment, FastPaymentDTOStatus newStatus, DateTime statusDate)
        {
            var oldStatus = fastPayment.FastPaymentStatus;

            _fastPaymentManager.UpdateFastPaymentStatus(_uow, fastPayment, newStatus, statusDate);
            Save(fastPayment);
            _logger.LogInformation($"Статус платежа с externalId: {fastPayment.ExternalId} изменён c {oldStatus} на {newStatus}");
        }
        public void UpdateFastPaymentStatus(IUnitOfWork uow, FastPayment fastPayment, FastPaymentDTOStatus newStatus, DateTime statusDate)
        {
            switch (newStatus)
            {
            case FastPaymentDTOStatus.Processing:
                fastPayment.SetProcessingStatus();
                break;

            case FastPaymentDTOStatus.Performed:
                if (fastPayment.Order != null)
                {
                    var paymentFrom = fastPayment.FastPaymentPayType == FastPaymentPayType.ByCard
                                                        ? _orderParametersProvider.GetPaymentByCardFromAvangardId
                                                        : _orderParametersProvider.GetPaymentByCardFromFastPaymentServiceId;

                    fastPayment.SetPerformedStatusForOrder(
                        uow,
                        statusDate,
                        uow.GetById <PaymentFrom>(paymentFrom),
                        _standartNomenclatures,
                        _routeListItemRepository,
                        _selfDeliveryRepository,
                        _cashRepository);
                }
                else
                {
                    fastPayment.SetPerformedStatusForOnlineOrder(statusDate);
                }
                break;

            case FastPaymentDTOStatus.Rejected:
                fastPayment.SetRejectedStatus();
                break;

            default:
                throw new InvalidOperationException("Неизвестный статус оплаты");
            }
        }