public async Task HandleAsync(IMessageContext context, AssignIncident message)
        {
            var assignedBy = message.AssignedBy;

            if (assignedBy != 0)
            {
                assignedBy = context.Principal.GetAccountId();
            }

            var incident = await _repository.GetAsync(message.IncidentId);

            incident.Assign(message.AssignedTo);
            await _repository.UpdateAsync(incident);

            var evt = new IncidentAssigned(message.IncidentId, assignedBy, message.AssignedTo);
            await context.SendAsync(evt);
        }
        public async Task HandleAsync(IMessageContext context, AssignIncident message)
        {
            var assignedBy = message.AssignedBy;

            if (assignedBy == 0)
            {
                assignedBy = context.Principal.GetAccountId();
            }
            if (message.AssignedAtUtc == DateTime.MinValue)
            {
                message.AssignedAtUtc = null;
            }

            var incident = await _repository.GetAsync(message.IncidentId);

            incident.Assign(message.AssignedTo, message.AssignedAtUtc);
            await _repository.UpdateAsync(incident);

            var evt = new IncidentAssigned(message.IncidentId, assignedBy, message.AssignedTo, message.AssignedAtUtc ?? DateTime.UtcNow);
            await context.SendAsync(evt);
        }