//public IList<RoomTypeSearchResultDTO> getRoomTypeBySearchCriteria(RoomTypeSearchCriteriaDTO searchCriteria, PagingInformation pageInfo) //{ // IList<string> hotelCodeList = userAccountService.GetUserMappedHotelCodes(searchCriteria.UserName); // if (hotelCodeList != null && hotelCodeList.Any()) // { // List<RoomType_Code> roomtypeList = (from grtc in roomtypeRepo.GetAll() // where hotelCodeList.Contains(grtc.Hotel_Code) // select grtc).ToList(); // //Hotel Name // if (!string.IsNullOrWhiteSpace(searchCriteria.HotelName)) // { // roomtypeList = roomtypeList.Where(p => p.Hotel_Code == searchCriteria.HotelName).ToList(); // } // pageInfo.RecordsTotal = roomtypeList.Count(); // //Setup Order, the order that passed in like "columnname asc, columnname desc" // //if (pageInfo.OrderColumn.Contains("UpgradeType")) // //{ // // pageInfo.OrderColumn = pageInfo.OrderColumn.Replace("UpgradeType", "AddOnYn"); // //} // if (!string.IsNullOrWhiteSpace(pageInfo.OrderColumn)) // { // string orderString = pageInfo.OrderColumn.TrimEnd(','); // roomtypeList = roomtypeList.AsQueryable().OrderBy(orderString).ToList(); // } // else // { // roomtypeList = roomtypeList.AsQueryable().OrderByDescending(p => p.id).ToList(); // } // //var ordercolumns = query.OrderBy(p) // //Setup paging // if (pageInfo.PageSize == -1 && pageInfo.StartIndex == -1) // { // } // else // { // roomtypeList = roomtypeList.AsQueryable().Skip(pageInfo.StartIndex).Take(pageInfo.PageSize).ToList(); // } // //Get column that we need // var list = roomtypeList.AsQueryable().Select(x => new RoomTypeSearchResultDTO() // { // id = x.id, // Hotel_Code = x.Hotel_Code, // RoomCode = x.RoomCode, // RoomDescription = x.RoomDescription, // RoomLongDescription = x.RoomLongDescription, // PriceDesc = x.PriceDesc, // PerNightCharge = x.PerNightCharge, // IsActive = x.IsActive, // AddOnYN = x.AddOnYN, // ImageYN = x.ImageYN, // UpgradeType = x.AddOnYN=="Y"? "Add-on": "Room", // }).ToList(); // return list; // } // else // return null; //} public IList <RoomTypeSearchResultDTO> getRoomTypeBySearchCriteria(RoomTypeSearchCriteriaDTO searchCriteria, PagingInformation pageInfo) { IList <RoomTypeSearchResultDTO> list = roomtypeRepo.GetRateTypeBySearchCriteria(searchCriteria, pageInfo); var query = list.AsEnumerable(); //Get all rateTypes pageInfo.RecordsTotal = query.Count(); if (!string.IsNullOrWhiteSpace(pageInfo.OrderColumn)) { var orderString = pageInfo.OrderColumn.TrimEnd(','); query = query.OrderBy(orderString); } else { query = query.OrderByDescending(p => p.id); } //Setup paging if (pageInfo.PageSize == -1 && pageInfo.StartIndex == -1) { } else { query = query.Skip(pageInfo.StartIndex).Take(pageInfo.PageSize); } return(query.ToList()); }
public byte[] GenerateRoomTypeExcelBySearchCriteria(RoomTypeSearchCriteriaDTO searchCriteria, PagingInformation pageInfo) { //For excel export, we need to export all records. //So set the pageindex and pagesize to -1 pageInfo.StartIndex = -1; pageInfo.PageSize = -1; var list = getRoomTypeBySearchCriteria(searchCriteria, pageInfo); //Get excel export list var excelList = mapper.Map <IList <RoomTypeExportExcelModel> >(list); return(excelList.ToExcelContent()); }
public IList <RoomTypeSearchResultDTO> GetRateTypeBySearchCriteria(RoomTypeSearchCriteriaDTO searchCriteria, PagingInformation pageInfo) { List <RoomTypeSearchResultDTO> list = new List <RoomTypeSearchResultDTO>(); try { string query = @" select distinct id = r.ID, Hotel_Code = r.Hotel_Code, RoomCode = r.RoomCode, RoomDescription= r.RoomDescription, RoomLongDescription= r.RoomLongDescription, r.UpgradeType,-- = case when r.AddOnYN ='Y' then 'Add-on' else 'Room' end, t.UpgradeTypeDisplayName, AddOnYN= Case when r.UpgradeType like '%Room%' then 'Y' else 'N'end, --r.AddOnYN, ImageYN= r.ImageYN, TotalRoom=r.TotalRoom, Threshold= r.Threshold, PriceDesc = r.PriceDesc, PerNightCharge=r.PerNightCharge, IsActive = r.IsActive, DateFormat = h.DateFormat from RoomType_Code r with(nolock) INNER JOIN eUpgradeTransactionCode t WITH ( NOLOCK ) ON r.Hotel_Code = t.HotelCode AND r.UpgradeType = t.UpgradeType join Hotels h with (nolock) on r.Hotel_Code = h.Hotel_Code join Hotels_Languages hl with (nolock) on r.Hotel_Code = hl.hotel_code and r.languageid = hl.LanguageID and hl.sortorder = 1"; var subquery = ""; //Hotel Name if (!string.IsNullOrWhiteSpace(searchCriteria.HotelName)) { subquery += string.Format("h.Hotel_Code = '{0}' and ", searchCriteria.HotelName); } else { //Based on user hotel mapping to get back hotel list, then only show those hotels subquery += string.Format(@"exists (select HotelCode from ConciergeHotelAccessMapping hm with (nolock) Where hm.ActiveYN = 1 and hm.HotelCode = r.Hotel_Code and hm.ConciergeID = N'{0}') and " , searchCriteria.UserName); } if (!string.IsNullOrEmpty(subquery)) { subquery = subquery.Substring(0, subquery.Length - " and ".Length); query += " and (" + subquery + ")"; } list = this.DataContext.Database.SqlQuery <RoomTypeSearchResultDTO>(query).ToList(); // add filter feature for the upgrade types page if (null != pageInfo) { var filterValue = pageInfo.FilterValue.ToLower(); if (!string.IsNullOrWhiteSpace(filterValue) && !string.IsNullOrEmpty(filterValue)) { list = list.Where(x => (x.Hotel_Code ?? "").ToLower().Contains(filterValue) || (x.RoomCode ?? "").ToLower().Contains(filterValue) || (x.RoomDescription ?? "").ToLower().Contains(filterValue) || (x.RoomLongDescription ?? "").ToLower().Contains(filterValue) || (x.UpgradeTypeDisplayName ?? "").ToLower().Contains(filterValue) || (x.ImageYN.ToLower() ?? "").Contains(filterValue) || (x.PriceDesc ?? "").ToLower().Contains(filterValue) ).ToList(); } } } catch (Exception ex) { var error = ex.Message; } return(list); }