コード例 #1
0
        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"));
        }
コード例 #2
0
 public async Task DeleteStatusAsync(int id)
 {
     await stateRepository.DeleteStatusAsync(id);
 }