public async Task <BaseCommandResponse> Handle(DeleteStatusCommand request, CancellationToken cancellationToken) { var user = await userStore.FindByIdAsync(request.GetUser(), cancellationToken); if (user == null) { throw new UserDoesNotExistException(); } if (!user.IsAdmin) { throw new UnauthorizedAccessException("User does not have permission for that action"); } var entity = await _satusRepository.GetStatusByIdAsync(request.StatusId); if (entity == null) { return(new BaseCommandResponse(new InfoMessage("The requested status id was not found in database"))); } bool isBeingUsed = await _satusRepository.IsBeingUsed(entity); if (isBeingUsed) { return(new BaseCommandResponse(new InfoMessage("Cannot be delete because some workers is using that state"))); } await _satusRepository.DeleteStatusAsync(entity); return(new BaseCommandResponse($"Status {entity.Name} deleted succesfully")); }
public async Task DeleteStatusAsync(int id) { await stateRepository.DeleteStatusAsync(id); }