public async Task <UnavailabilityDto> Handle(Query request, CancellationToken cancellationToken)
            {
                var entity = await _unavailabilityRepository.GetByIdAsync(request.Id);

                if (entity == null)
                {
                    throw new BadRequestException($"Not found unavalability with id: {request.Id}");
                }

                return(_mapper.Map <UnavailabilityDto>(entity));
            }
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var unavailability = await _unavailabilityRepository.GetByIdAsync(request.Id);

                if (unavailability == null)
                {
                    throw new BadRequestException($"Not found unavailability with id: {request.Id}");
                }

                _unavailabilityRepository.Remove(unavailability);
                await _unavailabilityRepository.SaveChangesAsync();

                return(Unit.Value);
            }
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var unavailability = await _unavailabilityRepository.GetByIdAsync(request.Id);

                if (unavailability == null)
                {
                    throw new BadRequestException($"Not found product with id: {request.Id}");
                }

                unavailability.Update(request.From, request.To, request.Reason, request.Comment);

                _unavailabilityRepository.Update(unavailability);
                await _unavailabilityRepository.SaveChangesAsync();

                return(Unit.Value);
            }