public async Task <IActionResult> Post(UpdateEventAdministratorCommand command) { var result = await _handler.Handle(command); if (!_handler.IsValid()) { return(BadRequest(_handler.GetErrors())); } return(Ok(result)); }
public async Task <ICommandResult> Handle(UpdateEventAdministratorCommand command) { command.IsValid(); var administratorId = Guid.Parse(_httpContextAccessor.HttpContext.User.FindFirst(JwtRegisteredClaimNames.Sid).Value); var eventAdministrator = await _eventAdministratorRepository.GetById(command.Id); if (eventAdministrator == null) { AddNotification("id", "Administrador de eventos não encontrado"); return(null); } if (!eventAdministrator.AdministratorId.Equals(administratorId)) { AddNotification("message", "Você não tem permissão para excluir esse administrador de eventos"); return(null); } eventAdministrator.Name = command.Name; AddNotifications(command.Notifications); AddNotifications(eventAdministrator.Notifications); if (!IsValid()) { return(null); } _eventAdministratorRepository.Update(eventAdministrator); await _eventAdministratorRepository.Commit(); return(new UpdateEventAdministratorCommandResult { Id = eventAdministrator.Id, Name = eventAdministrator.Name, Email = eventAdministrator.Email, AdminidstratorId = eventAdministrator.AdministratorId }); }