Example #1
0
        public IEnumerable <RoomDTO> GetRoomTypes(GetRoomTypesResource resource)
        {
            var roomsNotAvailable = _context.Registrations.Where(r => (r.CheckInDate > resource.Start && r.CheckInDate < resource.End) ||
                                                                 (r.CheckOutDate > resource.Start && r.CheckOutDate < resource.End))
                                    .Select(r => r.RoomId).ToList();

            var remainingRooms = GetRooms().Where(r => roomsNotAvailable.All(nar => nar != r.Id)).ToList();

            var dictionary = new Dictionary <string, RoomDTO>();

            remainingRooms.ForEach(r => dictionary.TryAdd($"{r.RoomType}.{r.Capacity}", r));

            return(dictionary.Values.OrderBy(r => r.Capacity).ToList());
        }
Example #2
0
        public ActionResult <IEnumerable <RoomDTO> > Post([FromBody] GetRoomTypesResource resource)
        {
            var rooms = _repository.GetRoomTypes(resource);

            return(Ok(rooms));
        }