public virtual RoomAvailabilityResults Execute(IRoomAvailabilityModel model, GetAvailabilityForRoomQuery query)
        {
            List <string> rooms = new List <string>();

            foreach (var i in model.Rooms)
            {
                var overlapping = i.Reservations.FirstOrDefault(x => (x.From <= query.Start && query.Start < x.To) ||
                                                                (x.From < query.End && query.End <= x.To) ||
                                                                (query.Start < x.From && x.To < query.End));

                if (overlapping == null)
                {
                    rooms.Add(i.Number);
                }
            }

            return(new RoomAvailabilityResults()
            {
                AvailableRooms = rooms
            });
        }
Esempio n. 2
0
 public HotelViewModel(Func <IRoomAvailabilityModel> model, Guid id) :  base(id)
 {
     _model = model();
 }