public Task Handle(TicketCreatedEvent @event) { var createdTicket = new Ticket { Id = @event.Ticket.Id, Number = @event.Ticket.Number, CreatedDate = @event.Ticket.CreatedDate, TicketCategoryId = @event.Ticket.TicketCategoryId, TicketStatus = @event.Ticket.TicketStatus }; var ticketQueue = _unitOfWork.EmpireQueues.Find(q => q.TicketCategoryId == createdTicket.TicketCategoryId).Single(); createdTicket.QueueId = ticketQueue.Id; _unitOfWork.Tickets.Create(createdTicket); ++ticketQueue.ActiveWaitersCount; _unitOfWork.EmpireQueues.UpdateQueue(ticketQueue); var updateEmpireQueueCommand = new UpdateEmpireQueueCommand(ticketQueue); _unitOfWork.SourceEvent(updateEmpireQueueCommand); _unitOfWork.BroadcastServerEvent("empire-queue-updated-event", ticketQueue); return(Task.CompletedTask); }
public Task Handle(TicketCategoryUpdatedEvent @event) { var updatedTicketCategory = new TicketCategory { Id = @event.TicketCategory.Id, PriorityCoefficient = @event.TicketCategory.PriorityCoefficient, Name = @event.TicketCategory.Name }; _unitOfWork.TicketCategories.UpdateTicketCategory(updatedTicketCategory); var selectedQueue = _unitOfWork.EmpireQueues.Find(eq => eq.TicketCategoryId == @event.TicketCategory.Id).SingleOrDefault(); if (selectedQueue == null) { return(Task.CompletedTask); } selectedQueue.QueueWeight = @event.TicketCategory.PriorityCoefficient; selectedQueue.Name = @event.TicketCategory.Name; _unitOfWork.EmpireQueues.UpdateQueue(selectedQueue); UpdateEmpireQueueCommand updateEmpireQueueCommand = new UpdateEmpireQueueCommand(selectedQueue); _unitOfWork.SourceEvent(updateEmpireQueueCommand); return(Task.CompletedTask); }
private void StartUpdateEmpireQueueCommand(EmpireQueue empireQueue) { var updateEmpireQueueCommand = new UpdateEmpireQueueCommand(empireQueue); _unitOfWork.SourceEvent(updateEmpireQueueCommand); }