Exemplo n.º 1
0
        private async Task UpdateShoppingCartInfoAsync()
        {
            string errorMessage = string.Empty;

            try
            {
                _shoppingCart = await _shoppingCartRepository.GetShoppingCartAsync();

                if (_shoppingCart != null && _shoppingCart.ShoppingCartItems != null)
                {
                    ShoppingCartItemViewModels = new ObservableCollection <ShoppingCartItemViewModel>();
                    foreach (var item in _shoppingCart.ShoppingCartItems)
                    {
                        var shoppingCartItemViewModel = new ShoppingCartItemViewModel(item, _resourceLoader);
                        shoppingCartItemViewModel.PropertyChanged += ShoppingCartItemViewModel_PropertyChanged;
                        ShoppingCartItemViewModels.Add(shoppingCartItemViewModel);
                    }

                    CheckoutCommand.RaiseCanExecuteChanged();
                    RaisePropertyChanged(nameof(FullPrice));
                    RaisePropertyChanged(nameof(TotalDiscount));
                    RaisePropertyChanged(nameof(TotalPrice));
                }
            }
            catch (Exception ex)
            {
                errorMessage = string.Format(CultureInfo.CurrentCulture, _resourceLoader.GetString("GeneralServiceErrorMessage"), Environment.NewLine, ex.Message);
            }

            if (!string.IsNullOrWhiteSpace(errorMessage))
            {
                await _alertMessageService.ShowAsync(errorMessage, _resourceLoader.GetString("ErrorServiceUnreachable"));
            }
        }
Exemplo n.º 2
0
        private async Task Remove(ShoppingCartItemViewModel item)
        {
            if (item == null)
            {
                return;
            }

            string errorMessage = string.Empty;

            try
            {
                // Hide the AppBar
                IsBottomAppBarOpened = false;

                await _shoppingCartRepository.RemoveShoppingCartItemAsync(item.Id);

                ShoppingCartItemViewModels.Remove(item);

                CheckoutCommand.RaiseCanExecuteChanged();
                RaisePropertyChanged(nameof(FullPrice));
                RaisePropertyChanged(nameof(TotalDiscount));
                RaisePropertyChanged(nameof(TotalPrice));
            }
            catch (Exception ex)
            {
                errorMessage = string.Format(CultureInfo.CurrentCulture, _resourceLoader.GetString("GeneralServiceErrorMessage"), Environment.NewLine, ex.Message);
            }

            if (!string.IsNullOrWhiteSpace(errorMessage))
            {
                await _alertMessageService.ShowAsync(errorMessage, _resourceLoader.GetString("ErrorServiceUnreachable"));
            }
        }
Exemplo n.º 3
0
        public async Task Handle_EventBusThrowsException_ThrowException(
            [Frozen] Mock <IBasketRepository> mockBasketRepository,
            [Frozen] Mock <IEventBus> mockEventBus,
            CheckoutCommandHandler sut,
            CheckoutCommand command,
            CustomerBasket basket
            )
        {
            //Arrange
            mockBasketRepository.Setup(_ => _.GetBasketAsync(
                                           It.IsAny <string>()
                                           ))
            .ReturnsAsync(basket);

            mockEventBus.Setup(_ => _.Publish(It.IsAny <IntegrationEvent>()))
            .Throws <Exception>();

            //Act
            Func <Task> func = async() => await sut.Handle(command, CancellationToken.None);

            //Assert
            await func.Should().ThrowAsync <Exception>();

            mockBasketRepository.Verify(x => x.GetBasketAsync(
                                            It.IsAny <string>()
                                            ));
        }
Exemplo n.º 4
0
        static async Task RunLoop(IEndpointInstance endpointInstance)
        {
            while (true)
            {
                log.Info("Press 'P' to place an order, or 'Q' to quit.");
                var key = Console.ReadKey();
                Console.WriteLine();

                switch (key.Key)
                {
                case ConsoleKey.P:
                    // Instantiate the command
                    var command = new CheckoutCommand
                    {
                        CartId     = Guid.NewGuid(),
                        CustomerId = Guid.NewGuid()
                    };

                    // Send the command
                    log.Info($"Sending Checkout command, CartId = {command.CartId}");
                    await endpointInstance.Send(command)
                    .ConfigureAwait(false);

                    break;

                case ConsoleKey.Q:
                    return;

                default:
                    log.Info("Unknown input. Please try again.");
                    break;
                }
            }
        }
Exemplo n.º 5
0
 private void NotifyCommands()
 {
     CancelCommand.RaiseCanExecuteChanged();
     CheckoutCommand.RaiseCanExecuteChanged();
     PrintCommand.RaiseCanExecuteChanged();
     PreviewCommand.RaiseCanExecuteChanged();
     SearchProductCommand.RaiseCanExecuteChanged();
 }
Exemplo n.º 6
0
 internal static Order FromCheckout(CheckoutCommand command, string userIdentifier)
 {
     return(new Order
     {
         UserIdentifier = userIdentifier,
         CustomerEmail = command.Customer.Email,
         Lines = new List <OrderLine>()
     });
 }
Exemplo n.º 7
0
        public User GetCheckoutUser(CheckoutCommand checkoutCommand, FIL.Contracts.Models.Country country)
        {
            try
            {
                if (checkoutCommand.IsLoginCheckout)
                {
                    User currentUser = _userRepository.GetByAltId(checkoutCommand.UserAltId);
                    return(currentUser);
                }
                else
                {
                    User user = checkoutCommand.GuestUser.SignUpMethodId == null?_userRepository.GetByEmailIdAndChannelId(checkoutCommand.GuestUser.Email, checkoutCommand.ChannelId)
                                    : _userRepository.GetByEmailAndChannel(checkoutCommand.GuestUser.Email, checkoutCommand.ChannelId, checkoutCommand.GuestUser.SignUpMethodId);

                    if (user == null)
                    {
                        Guid userAltId = Guid.NewGuid();
                        user = new User
                        {
                            AltId          = userAltId,
                            Email          = checkoutCommand.GuestUser.Email,
                            Password       = _passwordHasher.HashPassword(checkoutCommand.GuestUser.Email, checkoutCommand.GuestUser.Password),
                            RolesId        = 2, // TODO: XXX: Need a default
                            CreatedBy      = userAltId,
                            CreatedUtc     = DateTime.UtcNow,
                            UserName       = checkoutCommand.GuestUser.Email,
                            FirstName      = checkoutCommand.GuestUser.FirstName,
                            LastName       = checkoutCommand.GuestUser.LastName,
                            PhoneCode      = country.Phonecode.ToString(),
                            PhoneNumber    = checkoutCommand.GuestUser.PhoneNumber,
                            ChannelId      = ((checkoutCommand.ChannelId == Channels.Website) ? Channels.Website : Channels.Feel),
                            SignUpMethodId = SignUpMethods.Regular,
                            IsEnabled      = true,
                            IsRASVMailOPT  = checkoutCommand.GuestUser.IsMailOpt
                        };
                        user = _userRepository.Save(user);
                    }
                    else
                    {
                        user.FirstName   = checkoutCommand.GuestUser.FirstName;
                        user.LastName    = checkoutCommand.GuestUser.LastName;
                        user.PhoneCode   = country.Phonecode.ToString();
                        user.PhoneNumber = checkoutCommand.GuestUser.PhoneNumber;
                        user             = _userRepository.Save(user);
                    }
                    return(user);
                }
            }
            catch (Exception e)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, e);
                return(new User
                {
                });
            }
        }
Exemplo n.º 8
0
        public Task Handle(CheckoutCommand message, IMessageHandlerContext context)
        {
            Data.CustomerId = message.CustomerId;

            var checkGoodsInStock = new CheckGoodsInStockCommand
            {
                CartId = message.CartId
            };

            return(context.SendLocal(checkGoodsInStock));
        }
Exemplo n.º 9
0
        public async Task <ActionResult <OrderResponseDto> > Checkout([FromBody] CheckoutCommand command)
        {
            var result = await _mediator.Send(command);

            if (result == null)
            {
                return(BadRequest());
            }

            return(Ok(result));
        }
Exemplo n.º 10
0
        public async Task <IActionResult> CheckoutOrder([FromBody] CheckoutCommand command)
        {
            if (command == null)
            {
                return(await Respond(null, new List <Notification> {
                    new Notification("Order", "Parameters is invalid.")
                }));
            }

            var result = _orderCommandHandler.Handle(command);

            return(await Respond(result, _orderCommandHandler.Notifications));
        }
Exemplo n.º 11
0
        static void RunCheckoutProcess()
        {
            CheckoutModel   model           = new CheckoutModel();
            ICommandHandler checkoutHandler = new CommandHandler();
            CheckoutCommand checkoutCmd     = new CheckoutCommand(model, ConsoleApp.Action.CheckoutAction.AddOrderedItem);

            CommonUtils.ExecuteCommand(checkoutHandler, checkoutCmd);
            model       = checkoutCmd.Checkout;
            checkoutCmd = new CheckoutCommand(model, ConsoleApp.Action.CheckoutAction.CheckForMembership);
            CommonUtils.ExecuteCommand(checkoutHandler, checkoutCmd);
            model       = checkoutCmd.Checkout;
            checkoutCmd = new CheckoutCommand(model, ConsoleApp.Action.CheckoutAction.ShowCheckoutResult);
            CommonUtils.ExecuteCommand(checkoutHandler, checkoutCmd);
        }
Exemplo n.º 12
0
        public void LoadAllCommands()
        {
            //OrderCommand order = new OrderCommand();
            CommandsCommand     help         = new CommandsCommand();
            EnterCommand        enter        = new EnterCommand();
            CheckinCommand      checkin      = new CheckinCommand();
            CheckoutCommand     checkout     = new CheckoutCommand();
            CurrentSetupCommand currentsetup = new CurrentSetupCommand();
            SetupCommand        setup        = new SetupCommand();

            this.Commands = new Collection <ICommand>()
            {
                help, enter, checkin, checkout, currentsetup, setup
            };
        }
Exemplo n.º 13
0
        public virtual void TestFileModeChangeAndContentChangeConflict()
        {
            if (!FS.DETECTED.SupportsExecute())
            {
                return;
            }
            Git git = Git.Wrap(db);
            // Add non-executable file
            FilePath file = WriteTrashFile("file.txt", "a");

            git.Add().AddFilepattern("file.txt").Call();
            git.Commit().SetMessage("commit1").Call();
            NUnit.Framework.Assert.IsFalse(db.FileSystem.CanExecute(file));
            // Create branch
            git.BranchCreate().SetName("b1").Call();
            // Make file executable
            db.FileSystem.SetExecute(file, true);
            git.Add().AddFilepattern("file.txt").Call();
            git.Commit().SetMessage("commit2").Call();
            // Verify executable and working directory is clean
            Status status = git.Status().Call();

            NUnit.Framework.Assert.IsTrue(status.GetModified().IsEmpty());
            NUnit.Framework.Assert.IsTrue(status.GetChanged().IsEmpty());
            NUnit.Framework.Assert.IsTrue(db.FileSystem.CanExecute(file));
            WriteTrashFile("file.txt", "b");
            // Switch branches
            CheckoutCommand checkout = git.Checkout().SetName("b1");

            try
            {
                checkout.Call();
                NUnit.Framework.Assert.Fail("Checkout exception not thrown");
            }
            catch (NGit.Api.Errors.CheckoutConflictException)
            {
                CheckoutResult result = checkout.GetResult();
                NUnit.Framework.Assert.IsNotNull(result);
                NUnit.Framework.Assert.IsNotNull(result.GetConflictList());
                NUnit.Framework.Assert.AreEqual(1, result.GetConflictList().Count);
                NUnit.Framework.Assert.IsTrue(result.GetConflictList().Contains("file.txt"));
            }
        }
Exemplo n.º 14
0
        public async Task Handle_BasketDoesNotExist_ReturnNull(
            [Frozen] Mock <IBasketRepository> mockBasketRepository,
            [Frozen] Mock <IEventBus> mockEventBus,
            CheckoutCommandHandler sut,
            CheckoutCommand command
            )
        {
            //Arrange

            //Act
            var result = await sut.Handle(command, CancellationToken.None);

            //Assert
            result.Should().BeNull();
            mockBasketRepository.Verify(x => x.GetBasketAsync(
                                            It.IsAny <string>()
                                            ));
            mockEventBus.Verify(_ => _.Publish(It.IsAny <IntegrationEvent>()), Times.Never);
        }
Exemplo n.º 15
0
        public ICommandResult Handle(CheckoutCommand command)
        {
            var order = _orderAdoRepository.GetLastCreatedOrderById(command.OrderId);

            if (order == null)
            {
                AddNotification("Order", "Order isn't found.");
                return(null);
            }

            order.Checkout(command.Name, command.Street, command.City, command.Country, command.CreditCardNumber);

            AddNotifications(order.Notifications);

            if (Invalid)
            {
                return(null);
            }

            _orderAdoRepository.Update(order);

            return(new ReturnedItemCommandResult(order.Id, order.Number));
        }
Exemplo n.º 16
0
        public async Task Handle_BasketExists_ReturnBasket(
            [Frozen] Mock <IBasketRepository> mockBasketRepository,
            [Frozen] Mock <IEventBus> mockEventBus,
            CheckoutCommandHandler sut,
            CheckoutCommand command,
            CustomerBasket basket
            )
        {
            //Arrange
            mockBasketRepository.Setup(_ => _.GetBasketAsync(
                                           It.IsAny <string>()
                                           ))
            .ReturnsAsync(basket);

            //Act
            var result = await sut.Handle(command, CancellationToken.None);

            //Assert
            result.Should().BeEquivalentTo(basket);
            mockBasketRepository.Verify(_ => _.GetBasketAsync(
                                            It.IsAny <string>()
                                            ));
            mockEventBus.Verify(_ => _.Publish(It.IsAny <IntegrationEvent>()));
        }
Exemplo n.º 17
0
        public ServiceWizardViewModel(PanaceaServices core, TaskCompletionSource <bool> source)
        {
            _core                = core;
            _source              = source;
            SelectedItems        = new ObservableCollection <Service>();
            RemoveServiceCommand = new RelayCommand(args =>
            {
                SelectedItems.Remove(args as Service);
                if (!SelectedItems.Any())
                {
                    CartBoxIsOpen = false;
                }
            });
            SwitchToServicesCommand = new RelayCommand(args =>
            {
                if (SelectedIndex == 0)
                {
                    SelectedIndex = 1;
                }
                else
                {
                    SelectedIndex = 0;
                }
            });
            BuyServiceCommand = new RelayCommand(arg =>
            {
                SelectedItems.Clear();
                TabsSelectedIndex = 0;
            });
            CompleteCommand = new RelayCommand(arg =>
            {
                source.TrySetResult(true);
            });
            ToggleCartBoxCommand = new RelayCommand(arg =>
            {
                CartBoxIsOpen = !CartBoxIsOpen;
            });
            CheckoutCommand = new RelayCommand(async args =>
            {
                if (Packages != null && Packages.Any(p => p.IsChecked) ||
                    Services != null && Services.Any(s => s.IsChecked))
                {
                    CartBoxIsOpen = false;
                    if (core.UserService.User.Id == null)
                    {
                        if (core.TryGetUserAccountManager(out IUserAccountManager account))
                        {
                            _waitingForAnotherTask = true;
                            if (await account.RequestLoginAsync("In order to continue, you need to sign in with your user account"))
                            {
                                _waitingForAnotherTask = false;
                                TabsSelectedIndex      = 1;
                                CreateWebBrowser();
                                BuyService();
                            }
                        }
                        //todo TabsSelectedIndex = 1;
                    }
                    else
                    {
                        var pop = new UserConfirmationViewModel(_core.UserService.User);
                        if (_core.TryGetUiManager(out IUiManager ui))
                        {
                            var res = await ui.ShowPopup(pop);
                            if (res == UserConfirmationResult.Confirm)
                            {
                                TabsSelectedIndex = 1;
                                CreateWebBrowser();
                                BuyService();
                                //CheckUserService(() =>
                                //{

                                // });
                            }
                            else if (res == UserConfirmationResult.NotMe)
                            {
                                if (!(_core.TryGetUserAccountManager(out IUserAccountManager user) && await user.LogoutAsync()))
                                {
                                    await _core.UserService.LogoutAsync(); //todo (true)
                                }
                                CheckoutCommand.Execute(null);
                            }
                            else
                            {
                                CartBoxIsOpen = true;
                            }
                        }
                    }
                }
                else
                {
                    if (core.TryGetUiManager(out IUiManager ui))
                    {
                        await ui.ShowPopup(new NoServiceSelectedPopupViewModel());
                    }
                }
            });

            SelectCommand = new RelayCommand(args =>
            {
                var package = args as Service;

                if (package == null)
                {
                    return;
                }
                CancelButtonVisibility         = Visibility.Collapsed;
                CancelButtonServicesVisibility = Visibility.Visible;
                if (package is Package)
                {
                    CancelButtonVisibility         = Visibility.Visible;
                    CancelButtonServicesVisibility = Visibility.Collapsed;
                    SelectedItems.Clear();
                    Packages.ForEach(lp => lp.IsChecked = false);
                    Services.ForEach(lp => lp.IsChecked = false);
                    package.IsChecked = true;
                }
                else if (SelectedItems.Any(i => i is Package))
                {
                    SelectedItems.Clear();
                    Packages.ForEach(lp => lp.IsChecked = false);
                    Services.ForEach(lp => lp.IsChecked = false);
                    package.IsChecked = true;
                }
                if (SelectedItems.Contains(package))
                {
                    SelectedItems.Remove(package);
                    package.IsChecked = false;
                    CartBoxIsOpen     = SelectedItems.Count > 0;
                    HasSelectedPerDay = SelectedItems.All(i => i.IsPricePerDay);
                    UpdateSum();
                    TotalPanelVisibility = SelectedItems.Any(i => i.IsPricePerDay) || SelectedItems.Count > 1
                        ? Visibility.Visible
                        : Visibility.Collapsed;
                    return;
                }


                if ((package.IsPricePerDay && SelectedItems.Any(s => !s.IsPricePerDay)) ||
                    (!package.IsPricePerDay && SelectedItems.Any(s => s.IsPricePerDay)))
                {
                    /*todo
                     * var warning = new ChangeServiceTypeWarning();
                     * warning.Continue += (oo, ee) =>
                     * {
                     *  window.ThemeManager.HidePopup(warning);
                     *  SelectedItems.Clear();
                     *  packages.ForEach(lp => lp.IsChecked = false);
                     *  services.ForEach(lp => lp.IsChecked = false);
                     *  package.IsChecked = true;
                     *  SelectedItems.Add(package);
                     *  CartBox.IsOpen = SelectedItems.Count > 0;
                     *  HasSelectedPerDay = SelectedItems.All(i => i.IsPricePerDay);
                     *  UpdateSum();
                     *  TotalPanel.Visibility = SelectedItems.Any(i => i.IsPricePerDay) || SelectedItems.Count > 1
                     *      ? Visibility.Visible
                     *      : Visibility.Collapsed;
                     * };
                     *
                     * warning.Cancel += (oo, ee) =>
                     * {
                     *  window.ThemeManager.HidePopup(warning);
                     *  package.IsChecked = false;
                     *  CartBox.IsOpen = SelectedItems.Count > 0;
                     * };
                     * CartBoxIsOpen = false;
                     *
                     * window.ThemeManager.ShowPopup(warning).Closed += (oo, ee) =>
                     * {
                     *  package.IsChecked = false;
                     * };
                     */
                }
                else
                {
                    SelectedItems.Add(package);
                    CartBoxIsOpen     = SelectedItems.Count > 0;
                    HasSelectedPerDay = SelectedItems.All(i => i.IsPricePerDay);
                    UpdateSum();
                    TotalPanelVisibility = SelectedItems.Any(i => i.IsPricePerDay) || SelectedItems.Count > 1
                        ? Visibility.Visible
                        : Visibility.Collapsed;
                }
            });
        }
Exemplo n.º 18
0
        public CheckoutCommandResult CheckTicketLimit(CheckoutCommand checkoutCommand)
        {
            try
            {
                FIL.Contracts.Models.EventDetail eventDetail = new Contracts.Models.EventDetail();
                bool isPurchase = false;
                List <FIL.Contracts.DataModels.Transaction> transactionByData = new List <Contracts.DataModels.Transaction>();
                if (checkoutCommand.GuestUser != null && checkoutCommand.GuestUser.Email != null && checkoutCommand.GuestUser.PhoneNumber != null)
                {
                    transactionByData = _transactionRepository.GetSuccessFullTransactionByEmailOrPhoneNumber(checkoutCommand.GuestUser.Email, checkoutCommand.GuestUser.PhoneNumber).Where(s => s.ChannelId == Channels.Website).ToList();
                }
                if (transactionByData.Count() > 0 && !(bool)checkoutCommand.IsASI)
                {
                    IEnumerable <TransactionDetail> transactionDetails = _transactionDetailRepository.GetByTransactionIds(transactionByData.Select(s => s.Id).Distinct());
                    IEnumerable <Contracts.DataModels.EventTicketAttribute> eventTicketAttributeDetails = _eventTicketAttributeRepository.GetByEventTicketAttributeIds(transactionDetails.Select(s => s.EventTicketAttributeId).Distinct());
                    IEnumerable <Contracts.DataModels.EventTicketDetail>    eventTicketDetails          = _eventTicketDetailRepository.GetByEventTicketDetailIds(eventTicketAttributeDetails.Select(s => s.EventTicketDetailId));
                    IEnumerable <EventDetail> eventDetails = _eventDetailRepository.GetByEventDetailIds(eventTicketDetails.Select(s => s.EventDetailId).Distinct());

                    foreach (FIL.Contracts.DataModels.EventDetail itemEventDetail in eventDetails)
                    {
                        var filteredOrderEventTicketAttribute = checkoutCommand.EventTicketAttributeList.Where(s => s.EventDetailId == itemEventDetail.Id);
                        if (filteredOrderEventTicketAttribute.Any())
                        {
                            var tEventTicketDetails = eventTicketDetails.Where(w => w.EventDetailId == itemEventDetail.Id).Distinct();
                            var tETD = eventTicketDetails.Where(s => s.EventDetailId == itemEventDetail.Id);
                            var tETA = eventTicketAttributeDetails.Where(w => tETD.Select(s => s.Id).Contains(w.EventTicketDetailId));
                            int transactionTotalTickets        = transactionDetails.Where(w => tETA.Select(s => s.Id).Contains(w.EventTicketAttributeId)).Distinct().Select(s => s.TotalTickets).Sum(item => item);
                            int commanEventTicketAttributesSum = filteredOrderEventTicketAttribute.Select(s => s.TotalTickets).Sum(item => item);
                            int ticketLimit = 10;
                            if (itemEventDetail.TicketLimit != null)
                            {
                                ticketLimit = (int)itemEventDetail.TicketLimit;
                            }
                            if ((commanEventTicketAttributesSum + transactionTotalTickets) > ticketLimit)
                            {
                                eventDetail = AutoMapper.Mapper.Map <FIL.Contracts.Models.EventDetail>(itemEventDetail);
                                isPurchase  = true;
                                break;
                            }
                        }
                    }
                }
                if (isPurchase && !checkoutCommand.ISRasv)
                {
                    return(new CheckoutCommandResult
                    {
                        Id = 0,
                        Success = false,
                        EventName = eventDetail.Name,
                        IsTransactionLimitExceed = true,
                        IsTicketCategorySoldOut = false
                    });
                }
                else
                {
                    return(new CheckoutCommandResult
                    {
                        Success = true
                    });
                }
            }
            catch (Exception e)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, e);
                return(new CheckoutCommandResult
                {
                    Success = true
                });
            }
        }
Exemplo n.º 19
0
 public async Task <ActionResult <CheckoutResult> > Checkout([FromBody] CheckoutCommand checkoutCommand)
 {
     return(await _mediator.Send(checkoutCommand));
 }
Exemplo n.º 20
0
        /// <summary>
        /// 处理KEY
        /// </summary>
        /// <param name="args"></param>
        internal void HandleKey(KeyEventArgs args)
        {
            // 如果是功能(如上下左右,换页)
            if (args.Key >= Key.PageUp && args.Key <= Key.Down)
            {
                switch (args.Key)
                {
                case Key.Right:
                    GoRight();
                    break;

                case Key.Left:
                    GoLeft();
                    break;

                case Key.Up:
                    GoUp();
                    break;

                case Key.Down:
                    GoDown();
                    break;

                case Key.PageUp:
                    GoLastPage();
                    break;

                case Key.PageDown:
                    GoNextPage();
                    break;
                }
            }
            // 如果要增加数量或减少数量
            else if (args.Key == Key.Add || args.Key == Key.Subtract || args.Key == Key.Delete)
            {
                if (CurrentSelectedListNew.Count > 0 && CurrentSelectedListNew[CurrentIndex].NavigateMode == 0)
                {
                    if (args.Key == Key.Delete)
                    {
                        var lastIndex = CurrentIndex == 0 ? 1 : CurrentIndex;
                        var lastPage  = CurrentPage;

                        CurrentSelectedListNew[CurrentIndex].Delete.Execute(CurrentSelectedListNew[CurrentIndex]);

                        if (this.CurrentSelectedListNew.Count > 1 && CurrentPage == lastPage)
                        {
                            bool findIt = false;
                            for (int i = CurrentSelectedListNew.Count - 1; i >= 0; i--)
                            {
                                if (i < lastIndex && !findIt)
                                {
                                    findIt       = true;
                                    CurrentIndex = i;

                                    CurrentSelectedListNew[i].IsNavigated  = true;
                                    CurrentSelectedListNew[i].NavigateMode = 0;
                                }
                                else
                                {
                                    CurrentSelectedListNew[i].IsNavigated  = false;
                                    CurrentSelectedListNew[i].NavigateMode = 0;
                                }
                            }
                        }
                        //CalcAndResetPage();
                    }
                    else
                    {
                        double count = double.Parse(CurrentSelectedListNew[CurrentIndex].CountPos);

                        if (args.Key == Key.Add)
                        {
                            if (count < 99999)
                            {
                                CurrentSelectedListNew[CurrentIndex].CountPos = (++count).ToString();
                            }

                            if (count == 0)
                            {
                                CurrentSelectedListNew[CurrentIndex].CountPos = (1).ToString();
                            }
                        }
                        else if (args.Key == Key.Subtract)
                        {
                            if (count <= 1 && Common.GetCommon().IsDecreaseProductCount())
                            {
                                if (count == 1)
                                {
                                    CurrentSelectedListNew[CurrentIndex].CountPos = (-1).ToString();
                                }
                                else
                                {
                                    CurrentSelectedListNew[CurrentIndex].CountPos = (--count).ToString();
                                }
                            }
                            if (count > 1)
                            {
                                CurrentSelectedListNew[CurrentIndex].CountPos = (--count).ToString();
                            }
                        }
                    }
                }
            }
            // 如果是改动数字
            else if ((args.Key >= Key.D0 && args.Key <= Key.D9) || (args.Key >= Key.NumPad0 && args.Key <= Key.NumPad9) || args.Key == Key.OemPeriod || args.Key == Key.Decimal || args.Key == Key.Back)
            {
                if (CurrentSelectedListNew.Count > 0)
                {
                    if (CurrentSelectedListNew[CurrentIndex].NavigateMode == 0)
                    {
                        if (args.Key == Key.Back)
                        {
                            string countStr = CurrentSelectedListNew[CurrentIndex].CountPos;
                            if (countStr.Length > 1)
                            {
                                CurrentSelectedListNew[CurrentIndex].CountPos = countStr.Remove(countStr.Length - 1);
                            }
                            else
                            {
                                CurrentSelectedListNew[CurrentIndex].CountPos = "0";
                            }
                        }
                        else
                        {
                            string keyChar = Common.GetCommon().GetStrFromKey(args.Key);

                            string[] split = CurrentSelectedListNew[CurrentIndex].CountPos.Split('.');
                            if (split.Length > 1)
                            {
                                if (keyChar == "." || split[1].Length >= 3)
                                {
                                    return;
                                }
                            }
                            else if (CurrentSelectedListNew[CurrentIndex].CountPos.Length >= 8)
                            {
                                return;
                            }

                            if (CurrentSelectedListNew[CurrentIndex].CountPos == "0" && keyChar != ".")
                            {
                                CurrentSelectedListNew[CurrentIndex].CountPos = keyChar;
                            }
                            else
                            {
                                CurrentSelectedListNew[CurrentIndex].CountPos += keyChar;
                            }
                        }
                    }
                    else if (CurrentSelectedListNew[CurrentIndex].NavigateMode == 1)
                    {
                        if (args.Key == Key.Back)
                        {
                            string unitPriceStr = CurrentSelectedListNew[CurrentIndex].UnitPricePos;
                            if (unitPriceStr.Length > 1)
                            {
                                CurrentSelectedListNew[CurrentIndex].UnitPricePos = unitPriceStr.Remove(unitPriceStr.Length - 1);
                            }
                            else
                            {
                                CurrentSelectedListNew[CurrentIndex].UnitPricePos = "0";
                            }
                        }
                        else
                        {
                            string keyChar = Common.GetCommon().GetStrFromKey(args.Key);

                            string[] split = CurrentSelectedListNew[CurrentIndex].UnitPricePos.Split('.');
                            if (split.Length > 1)
                            {
                                if (keyChar == "." || split[1].Length >= 2)
                                {
                                    return;
                                }
                            }
                            else if (CurrentSelectedListNew[CurrentIndex].UnitPricePos.Length >= 8)
                            {
                                return;
                            }

                            if (CurrentSelectedListNew[CurrentIndex].UnitPricePos == "0" && keyChar != ".")
                            {
                                CurrentSelectedListNew[CurrentIndex].UnitPricePos = keyChar;
                            }
                            else
                            {
                                CurrentSelectedListNew[CurrentIndex].UnitPricePos += keyChar;
                            }
                        }
                    }
                }
            }
            else if (args.Key == Key.Enter)
            {
                // 回车结账
                if (this.CurrentSelectedList.Count > 0)
                {
                    CheckoutCommand.Execute(null);
                }
            }
        }
Exemplo n.º 21
0
        public void CheckoutCommand()
        {
            var command = new CheckoutCommand(@"C:\Users\jeffr\Documents\EChest\Big Blocks\Resource Packs\FormatTest");

            command.Execute(ViewModel.CheckoutCommand.Type.Branch, "test_branch");
        }
Exemplo n.º 22
0
 public static Task ExecuteAsync(ApplicationServiceContext context, CheckoutCommand command)
 => context.ExecuteAsync <CartState>(command, state => new[] { new CartCheckedoutEvent(Guid.Parse(command.AggregateId.Id)) });
Exemplo n.º 23
0
        public CheckoutCommandResult SaveTransaction(CheckoutCommand checkoutCommand, IEnumerable <Contracts.Models.EventTicketAttribute> eventTicketAttributeModel, FIL.Contracts.DataModels.User user)
        {
            try
            {
                var isPaymentBypass = false;
                var StripeAccount   = FIL.Contracts.Enums.StripeAccount.None;
                List <TransactionDetail> transactionDetailList             = new List <TransactionDetail>();
                List <FIL.Contracts.Models.CartItemModel> lstEventDetailId = new List <FIL.Contracts.Models.CartItemModel>();
                FIL.Contracts.DataModels.Transaction      transaction      = new FIL.Contracts.DataModels.Transaction();

                decimal grossTicketAmount = 0;
                long    eventDetailId = 0, ticketCategoryId = 0;
                decimal netTicketAmount     = 0;
                decimal totalDiscountAmount = 0;

                if (checkoutCommand.IsASI == null)
                {
                    checkoutCommand.IsASI = false;
                }

                var allETD = _eventTicketDetailRepository.GetByEventTicketDetailsIds(eventTicketAttributeModel.Select(s => s.EventTicketDetailId).Distinct()).Distinct();
                var allED  = _eventDetailRepository.GetByIds(allETD.Select(s => s.EventDetailId).Distinct()).Distinct();
                foreach (Contracts.Commands.Transaction.EventTicketAttribute ticketAttributes in checkoutCommand.EventTicketAttributeList)
                {
                    var     currentTA = ticketAttributes;
                    var     transactionType = checkoutCommand.IsQrTransaction ? TransactionType.QRCode : checkoutCommand.TransactionType == TransactionType.Itinerary ? TransactionType.Itinerary : ticketAttributes.TicketType == TicketType.SeasonPackage ? TransactionType.Season : ticketAttributes.TransactionType == TransactionType.LiveOnline ? TransactionType.LiveOnline : ticketAttributes.TransactionType == TransactionType.AddOns ? TransactionType.AddOns : TransactionType.Regular;
                    decimal discountAmount = 0, donationAmount = 0;
                    if (ticketAttributes.DiscountedPrice > 0)
                    {
                        discountAmount = ticketAttributes.DiscountedPrice;
                    }
                    if (ticketAttributes.DonationAmount != null && ticketAttributes.DonationAmount > 0)
                    {
                        donationAmount = (decimal)ticketAttributes.DonationAmount;
                    }
                    Contracts.Models.EventTicketAttribute checkoutCommandEventTicketAttribute = eventTicketAttributeModel.Where(w => w.Id == ticketAttributes.Id).FirstOrDefault();
                    decimal           pricePerTicket    = checkoutCommandEventTicketAttribute.Price;
                    EventTicketDetail eventTicketDetail = allETD.Where(s => s.Id == checkoutCommandEventTicketAttribute.EventTicketDetailId && s.IsEnabled).FirstOrDefault();
                    if (eventTicketDetail != null)
                    {
                        EventDetail eventDetail = allED.Where(s => s.Id == eventTicketDetail.EventDetailId && s.IsEnabled).FirstOrDefault();
                        if (eventDetail != null)
                        {
                            var visitStartDate = ticketAttributes.VisitDate;
                            var visitEndDate   = ticketAttributes.VisitDate;
                            if (checkoutCommand.TransactionType == TransactionType.Itinerary)
                            {
                                visitStartDate = ticketAttributes.VisitStartTime.Split(":").Count() > 1 ? new DateTime(visitStartDate.Year, visitStartDate.Month, visitStartDate.Day, Convert.ToInt32(ticketAttributes.VisitStartTime.Split(":")[0]), Convert.ToInt32(ticketAttributes.VisitStartTime.Split(":")[1]), 0) : visitStartDate;
                                visitEndDate   = ticketAttributes.VisitEndTime.Split(":").Count() > 1 ? new DateTime(visitEndDate.Year, visitEndDate.Month, visitEndDate.Day, Convert.ToInt32(ticketAttributes.VisitEndTime.Split(":")[0]), Convert.ToInt32(ticketAttributes.VisitEndTime.Split(":")[1]), 0) : visitEndDate;
                            }
                            visitStartDate = visitStartDate < new DateTime(1753, 1, 1) ? DateTime.UtcNow : visitStartDate;
                            visitEndDate   = visitEndDate < new DateTime(1753, 1, 1) ? DateTime.UtcNow : visitEndDate;
                            if ((bool)checkoutCommand.IsASI)
                            {
                                pricePerTicket = ticketAttributes.TicketType == TicketType.Child ? 0 : checkoutCommandEventTicketAttribute.Price;
                            }
                            if (ticketAttributes.OverridedAmount != null && checkoutCommand.IsBSPUpgrade && ticketAttributes.OverridedAmount != 0)
                            {
                                pricePerTicket = (decimal)ticketAttributes.OverridedAmount;
                            }
                            if (ticketAttributes.TicketType == TicketType.SeasonPackage)
                            {
                                eventDetailId = eventTicketDetail.EventDetailId;
                                lstEventDetailId.Add(new FIL.Contracts.Models.CartItemModel {
                                    EventDetailId = eventDetailId
                                });
                                ticketCategoryId = eventTicketDetail.TicketCategoryId;
                                IEnumerable <EventDetail>       seasonEventDetails       = _eventDetailRepository.GetSeasonEventDetails(eventDetail.EventId, eventDetail.VenueId).Where(s => s.IsEnabled == true);
                                IEnumerable <EventTicketDetail> seasonEventTicketDetails = _eventTicketDetailRepository.GetByEventDetailIds(seasonEventDetails.Select(s => s.Id).Distinct()).Where(w => w.TicketCategoryId == eventTicketDetail.TicketCategoryId);
                                List <Contracts.DataModels.EventTicketAttribute> seasonEventTicketAttributes = _eventTicketAttributeRepository.GetByEventTicketDetailIds(seasonEventTicketDetails.Select(s => s.Id).Distinct()).Where(W => W.IsEnabled == true && W.SeasonPackage == true).ToList();
                                var seasonPrice = seasonEventTicketAttributes[0].SeasonPackagePrice;
                                pricePerTicket = seasonPrice / seasonEventTicketAttributes.Count;
                            }
                            else
                            {
                                eventDetailId = eventDetail.Id;
                                lstEventDetailId.Add(new FIL.Contracts.Models.CartItemModel {
                                    EventDetailId = eventTicketDetail.EventDetailId
                                });
                                ticketCategoryId = eventTicketDetail.TicketCategoryId;
                            }

                            if (Convert.ToInt16(ticketAttributes.TotalTickets) <= checkoutCommandEventTicketAttribute.RemainingTicketForSale)
                            {
                                TransactionDetail transactionDetail = new TransactionDetail();
                                transactionDetail.EventTicketAttributeId = ticketAttributes.Id;
                                transactionDetail.TotalTickets           = Convert.ToInt16(ticketAttributes.TotalTickets);
                                transactionDetail.PricePerTicket         = checkoutCommand.TransactionType == TransactionType.Itinerary ? ticketAttributes.Price : pricePerTicket;
                                transactionDetail.DiscountAmount         = discountAmount;
                                transactionDetail.VisitDate       = visitStartDate;
                                transactionDetail.VisitEndDate    = visitEndDate;
                                transactionDetail.TransactionType = transactionType;
                                transactionDetail.TicketTypeId    = checkoutCommand.TransactionType == TransactionType.Itinerary ? (short)(ticketAttributes.IsAdult ? 10 : 2) : (short)(TicketType)ticketAttributes.TicketType;
                                if (checkoutCommand.ReferralId != null)
                                {
                                    var referral = _referralProvider.GetReferral(checkoutCommand.ReferralId, eventDetail.EventId, checkoutCommand.ModifiedBy);
                                    if (referral != null && referral.Id != 0)
                                    {
                                        transactionDetail.ReferralId = referral.Id;
                                    }
                                }
                                if (checkoutCommand.ChannelId == Channels.Feel && checkoutCommand.TransactionType != TransactionType.Itinerary)
                                {
                                    _geoCurrency.UpdateTransactionUpdates(transactionDetail, checkoutCommand.TargetCurrencyCode, checkoutCommandEventTicketAttribute.CurrencyId);
                                }
                                if (donationAmount > 0) // Donation doesn't need the local currency as the amount itself in the local currency
                                {
                                    transactionDetail.PricePerTicket = transactionDetail.PricePerTicket + donationAmount;
                                }
                                netTicketAmount               += ((ticketAttributes.TotalTickets * (decimal)transactionDetail.PricePerTicket) - ((decimal)transactionDetail.DiscountAmount));
                                grossTicketAmount             += ((ticketAttributes.TotalTickets * transactionDetail.PricePerTicket));
                                totalDiscountAmount           += (decimal)transactionDetail.DiscountAmount;
                                transactionDetail.MembershipId = ticketAttributes.MembershipId;
                                transactionDetailList.Add(transactionDetail);
                            }
                            else
                            {
                                EventDetail eventDetails = _eventDetailRepository.Get(eventDetailId);
                                Contracts.DataModels.TicketCategory ticketCategory = _ticketCategoryRepository.Get((int)ticketCategoryId);
                                return(new CheckoutCommandResult
                                {
                                    Id = 0,
                                    Success = false,
                                    EventName = eventDetails.Name,
                                    TicketCategoryName = ticketAttributes.TicketType == TicketType.SeasonPackage ? "Season - " + ticketCategory.Name : ticketCategory.Name,
                                    IsTransactionLimitExceed = false,
                                    IsTicketCategorySoldOut = true
                                });
                            }
                        }
                        else
                        {
                            EventDetail eventDetails = _eventDetailRepository.Get(eventDetailId);
                            Contracts.DataModels.TicketCategory ticketCategory = _ticketCategoryRepository.Get((int)ticketCategoryId);
                            return(new CheckoutCommandResult
                            {
                                Id = 0,
                                Success = false,
                                EventName = eventDetails.Name,
                                TicketCategoryName = ticketAttributes.TicketType == TicketType.SeasonPackage ? "Season - " + ticketCategory.Name : ticketCategory.Name,
                                IsTransactionLimitExceed = false,
                                IsTicketCategorySoldOut = true
                            });
                        }
                    }
                    else
                    {
                        EventDetail eventDetails = _eventDetailRepository.Get(eventDetailId);
                        Contracts.DataModels.TicketCategory ticketCategory = _ticketCategoryRepository.Get((int)ticketCategoryId);
                        return(new CheckoutCommandResult
                        {
                            Id = 0,
                            Success = false,
                            EventName = eventDetails.Name,
                            TicketCategoryName = ticketAttributes.TicketType == TicketType.SeasonPackage ? "Season - " + ticketCategory.Name : ticketCategory.Name,
                            IsTransactionLimitExceed = false,
                            IsTicketCategorySoldOut = true
                        });
                    }
                }
                var intialCurrencyId = eventTicketAttributeModel.Select(s => s.CurrencyId).FirstOrDefault();
                var currencyId       = eventTicketAttributeModel.Select(s => s.CurrencyId).FirstOrDefault();
                if (checkoutCommand.ChannelId == Channels.Feel) // Update the currencyId
                {
                    if (checkoutCommand.TransactionType == TransactionType.Itinerary)
                    {
                        currencyId = _geoCurrency.GetCurrencyID(checkoutCommand.TransactionCurrency).Id;
                    }
                    else
                    {
                        currencyId = _geoCurrency.GetCurrencyID(checkoutCommand.TargetCurrencyCode).Id;
                    }
                }

                /*if (checkoutCommand.ISRasv) // NAB test bed
                 * {
                 * var splitprice = netTicketAmount.ToString("0.00").Split(".");
                 *  var price = splitprice[0] + ".00";
                 * netTicketAmount = Convert.ToDecimal(netTicketAmount);
                 * }*/

                transaction.ChannelId           = checkoutCommand.ChannelId;
                transaction.CurrencyId          = currencyId;
                transaction.TotalTickets        = Convert.ToInt16(checkoutCommand.EventTicketAttributeList.Sum(s => s.TotalTickets));
                transaction.GrossTicketAmount   = grossTicketAmount;
                transaction.NetTicketAmount     = netTicketAmount;
                transaction.DiscountAmount      = totalDiscountAmount;
                transaction.TransactionStatusId = TransactionStatus.UnderPayment;
                transaction.FirstName           = user.FirstName;
                transaction.LastName            = user.LastName;
                transaction.PhoneCode           = user.PhoneCode;
                transaction.PhoneNumber         = user.Email == "*****@*****.**" ? checkoutCommand.GuestUser.PhoneNumber : user.PhoneNumber;
                transaction.EmailId             = user.Email == "*****@*****.**" ? checkoutCommand.GuestUser.PhoneNumber : user.Email;
                transaction.CountryName         = !string.IsNullOrWhiteSpace(user.PhoneCode) ? _countryRepository.GetByPhoneCode(user.PhoneCode).Name : "India";
                transaction.CreatedBy           = user.AltId;
                transaction.CreatedUtc          = DateTime.UtcNow;

                try
                {
                    var ipDetail = _saveIPProvider.SaveIp(checkoutCommand.Ip);
                    if (ipDetail != null && ipDetail.Id > 0)
                    {
                        transaction.IPDetailId = ipDetail.Id;
                    }
                }
                catch (Exception e)
                {
                    _logger.Log(Logging.Enums.LogCategory.Error, e);
                    transaction.IPDetailId = 1;
                }

                transaction.ModifiedBy = user.AltId;
                transaction.AltId      = Guid.NewGuid();
                if (transaction.CurrencyId != 7)
                {
                    transaction.OTP = checkoutCommand.OTPCode;
                }
                if (checkoutCommand.DonationAmount != null && checkoutCommand.DonationAmount != 0)
                {
                    transaction.DonationAmount = checkoutCommand.DonationAmount;
                }

                FIL.Contracts.DataModels.Transaction transactionResult = _transactionRepository.Save(transaction);
                foreach (TransactionDetail transactionDetail in transactionDetailList)
                {
                    transactionDetail.TransactionId = transactionResult.Id;
                    var currentTransactionDetail = _transactionDetailRepository.Save(transactionDetail);
                    FIL.Contracts.DataModels.EventTicketAttribute eventTicketAttribute = AutoMapper.Mapper.Map <FIL.Contracts.DataModels.EventTicketAttribute>(_eventTicketAttributeRepository.Get(transactionDetail.EventTicketAttributeId));
                    FIL.Contracts.DataModels.EventTicketDetail    eventTicketDetail    = AutoMapper.Mapper.Map <FIL.Contracts.DataModels.EventTicketDetail>(_eventTicketDetailRepository.Get(eventTicketAttribute.EventTicketDetailId));
                    if (Convert.ToInt16(transactionDetail.TotalTickets) <= eventTicketAttribute.RemainingTicketForSale)
                    {
                        eventTicketAttribute.RemainingTicketForSale -= transactionDetail.TotalTickets;
                        _eventTicketAttributeRepository.Save(eventTicketAttribute);
                        if (checkoutCommand.ChannelId == Channels.Website)
                        {
                            if (eventTicketDetail.InventoryTypeId == InventoryType.Seated || eventTicketDetail.InventoryTypeId == InventoryType.SeatedWithSeatSelection || eventTicketDetail.InventoryTypeId == InventoryType.NoneSeated)
                            {
                                List <Contracts.Models.TMS.SeatDetail> seatDetail = new List <Contracts.Models.TMS.SeatDetail>();
                                if (checkoutCommand.SeatDetails != null)
                                {
                                    seatDetail = AutoMapper.Mapper.Map <List <Contracts.Models.TMS.SeatDetail> >(checkoutCommand.SeatDetails.Where(w => w.EventTicketDetailId == eventTicketDetail.Id));
                                }
                                else
                                {
                                    seatDetail = null;
                                }
                                var seatBlock = _seatBlockingProvider.BlockSeat(seatDetail, transactionDetail, eventTicketAttribute, eventTicketDetail, user.AltId, Channels.Website);
                                if (!seatBlock.Success && seatBlock.IsSeatSoldOut)
                                {
                                    return(new CheckoutCommandResult
                                    {
                                        Success = false,
                                        Id = 0,
                                        TransactionAltId = Guid.NewGuid(),
                                        IsTransactionLimitExceed = false,
                                        IsTicketCategorySoldOut = false,
                                        IsSeatSoldOut = true
                                    });
                                }
                            }
                        }
                    }
                    else
                    {
                        EventDetail eventDetails = _eventDetailRepository.Get(eventDetailId);
                        Contracts.DataModels.TicketCategory ticketCategory = _ticketCategoryRepository.Get((int)ticketCategoryId);
                        return(new CheckoutCommandResult
                        {
                            Id = 0,
                            Success = false,
                            EventName = eventDetails.Name,
                            TicketCategoryName = transactionDetail.TicketTypeId == (short)TicketType.SeasonPackage ? "Season - " + ticketCategory.Name : ticketCategory.Name,
                            IsTransactionLimitExceed = false,
                            IsTicketCategorySoldOut = true
                        });
                    }
                    /* Save Transaction Schedule Detail */
                    var currentTicket = checkoutCommand.EventTicketAttributeList.Where(s => s.Id == currentTransactionDetail.EventTicketAttributeId).FirstOrDefault();
                    if (currentTicket.ScheduleDetailId != null && currentTicket.ScheduleDetailId != 0)
                    {
                        _saveTransactionScheduleDetailProvider.SaveTransactionScheduleDetail(currentTransactionDetail.Id, (long)currentTicket.ScheduleDetailId);
                    }
                }

                try
                {
                    if (checkoutCommand.ChannelId == Channels.Feel || checkoutCommand.ChannelId == Channels.Website) // If Live Online Transaction with 0.00 price
                    {
                        var @event = _eventRepository.Get(allED.FirstOrDefault().EventId);
                        if (@event != null)
                        {
                            if (@event.MasterEventTypeId == Contracts.Enums.MasterEventType.Online && transaction.NetTicketAmount == 0)
                            {
                                _zoomMeetingProvider.CreateMeeting(transaction, true);
                                isPaymentBypass = true;
                            }
                            else if (@event.MasterEventTypeId == Contracts.Enums.MasterEventType.Online)
                            {
                                StripeAccount = _eventStripeConnectAccountProvider.GetEventStripeAccount(allED.FirstOrDefault().EventId, checkoutCommand.ChannelId);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    _logger.Log(Logging.Enums.LogCategory.Error, e);
                }
                try
                {
                    /*Check if referred transactionId already upgraded to BSP or successfull transaction, if yes then don't allow another transaction using same referral/ transaction id*/
                    if (checkoutCommand.IsBSPUpgrade && checkoutCommand.ReferralId != null)
                    {
                        var transactions = _transactionRepository.GetAllSuccessfulTransactionByReferralId(checkoutCommand.ReferralId);
                        if (transactions.Any())
                        {
                            return(new CheckoutCommandResult
                            {
                                Id = 0,
                                Success = false,
                                IsBSPUpgraded = true
                            });
                        }
                    }
                }
                catch (Exception e)
                {
                    _logger.Log(Logging.Enums.LogCategory.Error, e);
                }

                return(new CheckoutCommandResult
                {
                    Id = transactionResult.Id,
                    CartBookingModel = lstEventDetailId,
                    Transaction = transactionResult,
                    IsPaymentByPass = isPaymentBypass,
                    Success = true,
                    StripeAccount = StripeAccount,
                });
            }
            catch (Exception e)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, e);
                return(new CheckoutCommandResult
                {
                });
            }
        }