public async Task <IActionResult> GetWakes(int hotelId, [FromQuery] WakeParam wakeParam) { var wakes = await _repo.GetWakeups(wakeParam, hotelId); var wakeToReturn = _mapper.Map <IEnumerable <WakeForListDto> >(wakes); Response.AddPagination(wakes.CurrentPage, wakes.PageSize, wakes.TotalCount, wakes.TotalPages); return(Ok(wakeToReturn)); }
public async Task <PagedList <WakeUp> > GetWakeups(WakeParam wakeParam, int HotelID) { var wakeups = _context.WakeUps.Where(h => h.HotelId == HotelID && h.IsDeleted == false) .OrderBy(b => b.Id).AsQueryable(); if (!wakeParam.All) { if (!string.IsNullOrEmpty(wakeParam.Status)) { if (wakeParam.Status == "Pending,Processing") { wakeups = wakeups.Where(b => b.BookStatus == "Pending" || b.BookStatus == "Processing"); } else { wakeups = wakeups.Where(b => b.BookStatus == wakeParam.Status); } } if (!string.IsNullOrEmpty(wakeParam.RoomNumber)) { wakeups = wakeups.Where(b => b.RoomNumber == wakeParam.RoomNumber); } if (!string.IsNullOrEmpty(wakeParam.Fullname)) { wakeups = wakeups.Where(b => b.GuestName.Contains(wakeParam.Fullname)); } if (!string.IsNullOrEmpty(wakeParam.Email)) { wakeups = wakeups.Where(b => b.Email.Contains(wakeParam.Email)); } if (!string.IsNullOrEmpty(wakeParam.Phone)) { wakeups = wakeups.Where(b => b.Phone.Contains(wakeParam.Phone)); } if (!string.IsNullOrEmpty(wakeParam.BookingDate)) { DateTime dt; if (DateTime.TryParse(wakeParam.BookingDate, out dt)) { wakeups = wakeups.Where(b => DateTime.Parse(b.ResDate).ToShortDateString() == dt.ToShortDateString()); } } } else { wakeups = wakeups.Where(b => b.CreatedOn > DateTime.Now.AddMonths(-1)); } if (!string.IsNullOrEmpty(wakeParam.OrderBy)) { switch (wakeParam.OrderBy) { case "Created": wakeups = wakeups.OrderBy(b => b.CreatedOn); break; default: wakeups = wakeups.OrderBy(b => (DateTime.Parse(b.ResDate).ToShortDateString() + " " + b.ResTime)); break; } } return(await PagedList <WakeUp> .CreateAsync(wakeups, wakeParam.PageNumber, wakeParam.PageSize)); }