예제 #1
0
        public void OnDeliveryInfoInput(EkDeliveryInfo deliveryInfo)
        {
            StartIfNew();

            _transaction.SetDeliveryInfo(deliveryInfo);
            _receiptData.DeliveryInfo = deliveryInfo;
        }
예제 #2
0
        private void OnWizardNextCommand()
        {
            switch (_currentStep)
            {
            case CheckoutStepEnum.PersonalInfo:
                SetWizardStepValue(CheckoutStepEnum.PersonalInfo, _personalInfoStepData.FullName);
                GotoStep(CheckoutStepEnum.PhoneNumber);
                break;

            case CheckoutStepEnum.PhoneNumber:
                SetWizardStepValue(CheckoutStepEnum.PhoneNumber, _phoneNumberStepData.PhoneNumber);
                EkContext.EkProcess.OnCustomerInfoInput(new EkCustomerInfo()
                {
                    FullName = _personalInfoStepData.FullName,
                    Phone    = PhoneNumberHelper.GetCleanedPhoneNumber(_phoneNumberStepData.PhoneNumber),
                });
                GotoStep(CheckoutStepEnum.DeliveryInfo);
                break;

            case CheckoutStepEnum.DeliveryInfo:
                var deliveryValueBuilder = new StringBuilder();
                switch (_deliveryInfoStepData.Type)
                {
                case EkDeliveryTypeEnum.DeliveryServiceStore:
                    deliveryValueBuilder.Append("Самовывоз, Новая Почта");
                    break;

                case EkDeliveryTypeEnum.Courier:
                    deliveryValueBuilder.Append("Курьер");
                    break;
                }

                deliveryValueBuilder.Append($", {_deliveryInfoStepData.Address.City}");
                deliveryValueBuilder.Append($", {_deliveryInfoStepData.Address.AddressLine1}");
                SetWizardStepValue(CheckoutStepEnum.DeliveryInfo, deliveryValueBuilder.ToString());

                var ekDeliveryInfo = new EkDeliveryInfo
                {
                    Type            = _deliveryInfoStepData.Type ?? EkDeliveryTypeEnum.Courier,
                    DeliveryService = _deliveryInfoStepData.DeliveryService,
                    StoreId         = _deliveryInfoStepData.StoreId,
                    Address         = new EkTransactionAddress()
                    {
                        City         = _deliveryInfoStepData.Address.City,
                        AddressLine1 = _deliveryInfoStepData.Address.AddressLine1,
                    }
                };
                EkContext.EkProcess.OnDeliveryInfoInput(ekDeliveryInfo);

                GotoStep(CheckoutStepEnum.OrderConfirmation);
                break;

            case CheckoutStepEnum.OrderConfirmation:
                SetWizardStepValue(CheckoutStepEnum.OrderConfirmation, "Подтверждено");
                GotoStep(CheckoutStepEnum.PaymentInfo);
                break;

            case CheckoutStepEnum.PaymentInfo:
                EkContext.EkProcess.SelectedPaymentMethodInfo = _paymentInfoStepData.PaymentMethodInfo;
                EkContext.CompleteOrderCommand.Execute(null);
                break;
            }
        }