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 }); }
public HotelViewModel(Func <IRoomAvailabilityModel> model, Guid id) : base(id) { _model = model(); }