public async Task <ActionResult <dynamic> > Availability(AvailabilityViewModel reservationIn)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ValidationProblemDetails(ModelState)));
            }

            if (string.IsNullOrWhiteSpace(reservationIn.CronoExpression))
            {
                var freeResources = await _reservationService.Availability(reservationIn.Start, reservationIn.End, reservationIn.ResourceType, reservationIn.ResourceSubTypes, null);

                return(freeResources);
            }
            else
            {
                var expression  = CronExpression.Parse(reservationIn.CronoExpression);
                var occurrences = expression.GetOccurrences(
                    reservationIn.Start,
                    reservationIn.End,
                    fromInclusive: true,
                    toInclusive: true);
                if (occurrences == null)
                {
                    return(null);
                }

                var freeResources = await _reservationService.Availability(reservationIn.Start, reservationIn.End, reservationIn.ResourceType, reservationIn.ResourceSubTypes, occurrences);

                return(freeResources);
            }
        }