public HttpResponseMessage Post([FromBody] TimeSlotVM times) { try { var roomList = roomInfo.GetRoomsByTime(times); if (roomInfo != null) { return(Request.CreateResponse(HttpStatusCode.OK, roomList)); } else { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "room is not available at this time slot")); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
public List <RoomVM> GetRoomsByTime(TimeSlotVM times) { try { DateTime startTime = times.StartTime; DateTime endTime = times.EndTime; var roomList = new List <RoomVM>(); using (TrainingAppEntities1 dc = new TrainingAppEntities1()) { var bookedSlotList = dc.Schedules.Where(a => a.StartTime == startTime || a.EndTime == endTime || (a.StartTime <endTime && a.StartTime> startTime) || (startTime > a.StartTime && endTime < a.EndTime) || (endTime > a.EndTime && startTime < a.StartTime)); HashSet <int?> bookedIdList = new HashSet <int?>(); var uniqueDetails = dc.RoomDetails.ToList(); int count = 0; foreach (var item in bookedSlotList) { bookedIdList.Add(item.RoomId); count++; } Console.WriteLine(count); foreach (var item in bookedIdList) { uniqueDetails.RemoveAll(a => a.RoomId == item); } foreach (var item in uniqueDetails) { RoomVM roomVM = new RoomVM(); roomVM.RoomId = item.RoomId; roomVM.RoomName = item.RoomName; roomList.Add(roomVM); } } return(roomList); } catch (Exception) { return(null); } }