public IActionResult Create([FromBody] TicketDetails ticket)
        {
            CreateTicketEvent  @event    = new CreateTicketEvent(ticket);
            TicketCreatedEvent outputEvt = ticketService.Create(@event);
            Ticket             output    = Ticket.FromTicketDetails(outputEvt.Object);

            return(CreatedAtRoute("Get", new { code = outputEvt.Object.Code }, output));
        }
        public TicketCreatedEvent Create(CreateTicketEvent @event)
        {
            Ticket entity = Ticket.FromTicketDetails(@event.Object);

            // Use case rules go here
            // Use service composition to call other services
            entity.Creation = new DateTime();
            Account account = accountRepository.FindOne(@event.Object.Account);

            entity.Account = account;
            entity         = ticketRepository.Save(entity);

            return(new TicketCreatedEvent(entity.ToTicketDetails()));
        }
        public void TestCreateTicket()
        {
            TicketDetails ticket = new TicketDetails();

            ticket.Account  = "root";
            ticket.Priority = 5;

            CreateTicketEvent @event = new CreateTicketEvent(ticket);

            TicketCreatedEvent evtOutput = ticketService.Create(@event);

            Assert.Equal(ResponseCode.OK, evtOutput.Code);

            TicketDetails output = evtOutput.Object;

            Assert.Equal(5, output.Priority);
            Assert.True(output.Code > 0);
        }
 public void Handle(CreateTicketEvent message)
 {
     ActivateScreen(Screens.CreateTicket);
     CreateTicketView.Instance.flightId = message.flightId;
 }