Ejemplo n.º 1
0
        public async Task <IActionResult> BuyTickets([FromForm] BuyTicketCommand buyTicketCommand)
        {
            var request = _requestClientBuyTicketCommand.Create(buyTicketCommand);
            await request.GetResponse <BuyTicketsEvent>();

            return(RedirectToAction("Index"));
        }
        public async Task BuyTicket_ShouldBuyTicket()
        {
            //Arrange
            var handler            = new TicketQueryHandler();
            var ticketsFromHandler = await handler.HandleAsync(new TicketQuery());

            var ticketsFromHandlerCount = ticketsFromHandler.ToList().Count;

            var firstCompetitionFromDatabase = this.context.Competitions.FirstOrDefault();
            var firstCompetitorFromDatabase  = this.context.Competitors.FirstOrDefault();
            var firstGamblerFromDatabase     = this.context.Gamblers.FirstOrDefault();

            //Act - do something
            BuyTicketCommand command = new BuyTicketCommand
            {
                Id                = Guid.NewGuid(),
                CompetitionId     = firstCompetitionFromDatabase.Id,
                CompetitorId      = firstCompetitorFromDatabase.Id,
                GamblerId         = firstGamblerFromDatabase.Id,
                IsPaymentReceived = false
            };


            //Assert - check results
            try
            {
                await buyTicketHandler.HandleAsync(command);
            }
            catch (Exception ex)
            {
                Assert.Fail("Expected no exception, but got: " + ex.Message);
            }
        }
        public MovieDetailsPageViewModel(
            IRxStore <AppState> store,
            IMoviesService moviesService,
            INavigationService navigationService)
        {
            _store             = store;
            _moviesService     = moviesService;
            _navigationService = navigationService;

            CurrentMovie = _store.AsObservable()
                           .Select(x => x.Movies.CurrentMovie)
                           .ToReadOnlyReactiveProperty(mode: ReactivePropertyMode.RaiseLatestValueOnSubscribe);

            Functions = _store.AsObservable().Select(x => x.Movies)
                        .Where(x => x.CurrentMovie != null)
                        .Select(x => x.CurrentMovie.Functions)
                        .ToReadOnlyReactiveProperty();

            BuyTicketCommand = new[] { Function.SetValidateNotifyError(f => f == null ? "You should pick a function" : null)
                                       .ObserveHasErrors }
            .CombineLatestValuesAreAllFalse()
            .ToReactiveCommand();

            BuyTicketCommand.Subscribe(OnBuyTicket);
        }
        public async Task <IActionResult> Ticket(CreateTicketBindingModel createTicketBindingModel)
        {
            //get competitor ID
            IEnumerable <Competitor> competitors = await new CompetitorQueryHandler().HandleAsync(new CompetitorQuery
            {
                Name = createTicketBindingModel.competitor
            });

            Competitor competitor = competitors.Where(c => c.Name == createTicketBindingModel.competitor)
                                    .ToList()
                                    .FirstOrDefault();

            if (competitor == null)
            {
                return(RedirectToAction(StaticConstants.Competition, StaticConstants.ApiCompetitions, new { name = createTicketBindingModel.competitionName, error = StaticConstants.TicketNotCreatedCreatorNullError }));
            }

            Guid competitorId = competitor.Id;


            //get gambler ID
            var currentGambler = await new GamblerQueryHandler().HandleAsync(new GamblerQuery
            {
                Name = createTicketBindingModel.gambler
            });

            Gambler gambler = currentGambler.Where(c => c.Name == createTicketBindingModel.gambler)
                              .ToList()
                              .FirstOrDefault();

            if (gambler == null)
            {
                return(RedirectToAction(StaticConstants.Competition, StaticConstants.ApiCompetitions, new { name = createTicketBindingModel.competitionName, error = StaticConstants.TicketNotCreatedGamblerNullError }));
            }

            Guid gamblerId = gambler.Id;


            //Create BuyTicketCommand command
            BuyTicketCommand command = new BuyTicketCommand
            {
                Id                = Guid.NewGuid(),
                CompetitionId     = Guid.Parse(createTicketBindingModel.competitionId),
                CompetitorId      = competitorId,
                GamblerId         = gamblerId,
                IsPaymentReceived = createTicketBindingModel.paymentReceived
            };

            var handler = new BuyTicketHandler();
            await handler.HandleAsync(command);

            return(RedirectToAction(StaticConstants.Ticket, new { id = command.Id, message = StaticConstants.TicketBoughtSuccessMessage }));
        }
Ejemplo n.º 5
0
        public string DispatchCommand(IList <string> data)
        {
            var commandName = data[0].ToLower();
            var result      = string.Empty;

            switch (commandName)
            {
            case "print-info":
                var printInfoCommand = new PrintInfoCommand();
                data.RemoveAt(0);
                result = printInfoCommand.Execute(data);
                break;

            case "buy-ticket":
                var buyTicketCommand = new BuyTicketCommand();
                data.RemoveAt(0);
                result = buyTicketCommand.Execute(data);
                break;

            case "publish-review":
                var publishReviewCommand = new PublishReviewCommand();
                data.RemoveAt(0);
                result = publishReviewCommand.Execute(data);
                break;

            case "print-review":
                var printReviewCommand = new PrintReviewCommand();
                data.RemoveAt(0);
                result = printReviewCommand.Execute(data);
                break;

            case "exit":
                Environment.Exit(0);
                break;

            default:
                throw new ArgumentException("Invalid Command");
            }

            return(result);
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> BuyTicket([FromBody] BuyTicketCommand command)
        {
            _logger.LogInformation($"BuyTicketCommand: {command}.");

            try
            {
                // await _commandHandler.HandleAsync(command);
            }
            catch (InfrastructureException ex)
            {
                _logger.LogError($"Server error during processing command: {ex.Message}");
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
            catch (Exception ex)
            {
                _logger.LogInformation($"Client error during processing command: {ex.Message}");
                return(BadRequest());
            }

            return(Ok("OrderController: BuyTicket ok"));
        }
        public string DispatchCommand(string[] commandParams)
        {
            string commandName = commandParams[0];

            var commandArg = commandParams.Skip(1).ToArray();

            string result = string.Empty;

            switch (commandName)
            {
            case "print-info":
                var printInfo = new PrintInfoCommand();
                result = printInfo.Execute(commandArg);
                break;

            case "buy-ticket":
                var buyTicket = new BuyTicketCommand();
                result = buyTicket.Execute(commandArg);
                break;

            case "publish-review":
                var publishReview = new PublishReviewCommand();
                result = publishReview.Execute(commandArg);
                break;

            case "print-reviews":
                var printReview = new PrintReviewsCommand();
                result = printReview.Execute(commandArg);
                break;

            case "ChangeTripStatus":
                var changeTripStatusCommand = new ChangeTripStatusCommand();
                result = changeTripStatusCommand.Execute(commandArg);
                break;

            default: throw new InvalidOperationException("Invalid command!");
            }
            return(result);
        }
Ejemplo n.º 8
0
        public string DispatchCommand(string[] cmdParams)
        {
            string command = cmdParams[0].ToLower();

            string[] data   = cmdParams.ToArray();
            string   result = "";

            switch (command)
            {
            case "print-info":
                result = PrintInfoCommand.Execute(cmdParams);
                break;

            case "buy-ticket":
                result = BuyTicketCommand.Execute(cmdParams);
                break;

            case "publish-review":
                result = PublishReviewCommand.Execute(cmdParams);
                break;

            case "print-reviews":
                result = PrintReviewCommand.Execute(cmdParams);
                break;

            case "exit":
                result = ExitCommand.Execute();
                break;

            case "change-trip-status":
                result = ChangeTripStatusCommand.Execute(cmdParams);
                break;

            default: result = "Invalid Command!";
                break;
            }
            return(result);
        }
        public string DispatchCommand(string[] commandParameters)
        {
            string command = commandParameters[0];

            string result = null;

            switch (command.ToLower())
            {
            case "print-info":
                result = PrintInfoCommand.Execute(commandParameters);
                break;

            case "buy-ticket":
                result = BuyTicketCommand.Execute(commandParameters);
                break;

            case "publish-review":
                result = PublishReviewCommand.Execute(commandParameters);
                break;

            case "print-reviews":
                result = PrintReviewsCommand.Execute(commandParameters);
                break;

            case "change-trip-status":
                result = ChangeTripStatusCommand.Execute(commandParameters);
                break;

            case "exit":
                result = ExitCommand.Execute(commandParameters);
                break;

            default:
                throw new InvalidOperationException($"Command {command} not valid!");
            }
            return(result);
        }