Ejemplo n.º 1
0
        public void Close(CloseTicketCommand command)
        {
            command.Validate();

            if (AddNotifications(command))
            {
                return;
            }

            Ticket ticket = _ticketRepository.GetById(command.TicketId);

            if (NotifyNullTicket(ticket) || NotifyCantAccessTicket(ticket))
            {
                return;
            }

            ticket.Close();

            if (AddNotifications(ticket))
            {
                return;
            }

            _ticketRepository.Update(ticket);

            if (Commit())
            {
                PublishLocal(new TicketClosedEvent(ticket.Id));
            }
        }