public async Task<ActionResult> Wishlist(int? totalWishlistItems, string WishlistItems, string WishlistSection, int? pageProperty, int? pageBidding) { ViewBag.Message = "Wishlist"; ViewBag.CurrentItems = WishlistItems; ViewBag.CurrentWishlistSection = WishlistSection; List<string> selectedPIDItemsL = new List<string>(); List<string> selectedBIDItemsL = new List<string>(); string selectedPIDItems = null; string selectedBIDItems = null; if (WishlistItems == null || WishlistItems == "") //return new HttpStatusCodeResult(HttpStatusCode.BadRequest); return RedirectToAction("Index", "FrontEnd"); string last = WishlistItems.Split(new[] { ',' }).Last(); foreach (var item in WishlistItems.Split(new[] { ',' })) { var type = (item.Substring(0, 2).Equals("11"))? "PID":"BID"; if (type.Equals("PID")) { var PID = item.Substring(2); selectedPIDItemsL.Add(PID); } else { var BID = item.Substring(2); selectedBIDItemsL.Add(BID); } } string lastP = (selectedPIDItemsL.Count != 0) ? selectedPIDItemsL.Last() : null; foreach (var itemP in selectedPIDItemsL) { if (itemP.Equals(lastP)) { selectedPIDItems += "ID = " + itemP; } else { selectedPIDItems += "ID = " + itemP + " OR "; } } string lastB = (selectedBIDItemsL.Count != 0) ? selectedBIDItemsL.Last() : null; foreach (var itemB in selectedBIDItemsL) { if (itemB.Equals(lastB)) { selectedBIDItems += "ID = " + itemB; } else { selectedBIDItems += "ID = " + itemB + " OR "; } } SearchBiddingsPropertyPhViewModel viewModel = new SearchBiddingsPropertyPhViewModel(); IEnumerable<Property> allProperties = null; IEnumerable<Bidding> allBiddings = null; if (!String.IsNullOrEmpty(selectedPIDItems)) { allProperties = await db.Properties.SqlQuery("SELECT * FROM Property WHERE " + selectedPIDItems).ToListAsync(); List<HomePropertyPhotoViewModel> allPropertyPhoto = new List<HomePropertyPhotoViewModel>(); foreach (var property in allProperties) { HomePropertyPhotoViewModel model = new HomePropertyPhotoViewModel(); model.Property = property; model.Photo = await db.Photos.Where(ph => ph.PropertyId == property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allPropertyPhoto.Add(model); } int pageSize = 9; int pageNumber = (pageProperty ?? 1); viewModel.PropertyPhotoPaged = allPropertyPhoto.ToPagedList(pageNumber, pageSize); } if (!String.IsNullOrEmpty(selectedBIDItems)) { allBiddings = await db.Biddings.SqlQuery("SELECT * FROM Bidding WHERE " + selectedBIDItems).ToListAsync(); List<BiddingsPhotoViewModel> allBiddingPhoto = new List<BiddingsPhotoViewModel>(); foreach (var bidding in allBiddings) { BiddingsPhotoViewModel model = new BiddingsPhotoViewModel(); model.Bidding = bidding; model.Property = bidding.Property; model.Photo = await db.Photos.Where(ph => ph.PropertyId == model.Property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allBiddingPhoto.Add(model); } int pageSize = 9; int pageNumber = (pageBidding ?? 1); viewModel.BiddingsPhotoPaged = allBiddingPhoto.ToPagedList(pageNumber, pageSize); } return View(viewModel); }
public async Task<ActionResult> Biddings(string sortOrder, string currentFilter, string searchBidding, string status, string propertyView, int? page) { ViewBag.CurrentSort = sortOrder; ViewBag.CurrentView = propertyView; ViewBag.CurrentStatus = status; // Biddings Pagination if (searchBidding != null) { page = 1; } else { searchBidding = currentFilter; } ViewBag.CurrentFilter = searchBidding; BiddingsPropertyPhotoViewModel viewModel = new BiddingsPropertyPhotoViewModel(); IEnumerable<Bidding> allBiddings = null; if (status != null) { allBiddings = await db.Biddings.Where(b => b.BiddingStatus.ToString().Contains(status)).OrderByDescending(b => b.Id).ToListAsync(); }else{ allBiddings = await db.Biddings.OrderByDescending(b => b.Id).ToListAsync(); } if (!String.IsNullOrEmpty(searchBidding)) { allBiddings = allBiddings.Where(b => b.Title.ToUpper().Contains(searchBidding.ToUpper()) || b.Title.ToUpper().Contains(searchBidding.ToUpper())); } switch (sortOrder) { //case "type_desc": // properties = properties.OrderByDescending(p => p.OfType); // break; case "Type": allBiddings = allBiddings.OrderBy(b => b.Property.For); break; case "Price": allBiddings = allBiddings.OrderBy(b => b.Property.Price); break; case "Date": allBiddings = allBiddings.OrderByDescending(b => b.PostedOn); break; default: allBiddings = allBiddings.OrderByDescending(b => b.Id); break; } List<BiddingsPhotoViewModel> allBiddingPhoto = new List<BiddingsPhotoViewModel>(); foreach (var bidding in allBiddings) { BiddingsPhotoViewModel model = new BiddingsPhotoViewModel(); model.Bidding = bidding; model.Property = bidding.Property; model.OfSubType = (model.Property.OfSubType != null) ? await db.OfSubTypes.FindAsync(model.Property.OfSubType) : null; model.Photo = await db.Photos.Where(ph => ph.PropertyId == model.Property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allBiddingPhoto.Add(model); } int pageSize = 12; int pageNumber = (page ?? 1); viewModel.BiddingsPhotoPaged = allBiddingPhoto.ToPagedList(pageNumber, pageSize); return View(viewModel); }
public async Task<ActionResult> Search(string filterSearch, string currentFilter, string Sr, string propertyView, int? page) { ViewBag.CurrentSearch = filterSearch; ViewBag.CurrentView = propertyView; // Biddings Pagination if (Sr != null) { page = 1; } else { Sr = currentFilter; } ViewBag.CurrentFilter = Sr; SearchBiddingsPropertyPhViewModel viewModel = new SearchBiddingsPropertyPhViewModel(); IEnumerable<Property> allProperties = null; IEnumerable<Bidding> allBiddings = null; if ((!String.IsNullOrEmpty(Sr) && filterSearch == "Properties") || (!String.IsNullOrEmpty(Sr) && filterSearch == null)) { allProperties = await db.Properties.Where(p => p.Availability.ToString().Contains("Yes")).OrderByDescending(p => p.Id).ToListAsync(); allProperties = allProperties.Where(p => p.Id.ToString().Contains(Sr.ToUpper()) || p.Title.ToUpper().Contains(Sr.ToUpper()) || p.Agent.FullName.ToUpper().Contains(Sr.ToUpper()) ); List<HomePropertyPhotoViewModel> allPropertyPhoto = new List<HomePropertyPhotoViewModel>(); foreach (var property in allProperties) { HomePropertyPhotoViewModel model = new HomePropertyPhotoViewModel(); model.Property = property; model.Photo = await db.Photos.Where(ph => ph.PropertyId == property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allPropertyPhoto.Add(model); } int pageSize = 12; int pageNumber = (page ?? 1); viewModel.PropertyPhotoPaged = allPropertyPhoto.ToPagedList(pageNumber, pageSize); } else if (Sr != null && filterSearch == "Biddings" ) { allBiddings = await db.Biddings.OrderByDescending(b => b.Id).ToListAsync(); allBiddings = allBiddings.Where(b => b.Id.ToString().Contains(Sr.ToUpper()) || b.Title.ToUpper().Contains(Sr.ToUpper()) || b.Property.Agent.FullName.ToUpper().Contains(Sr.ToUpper())); List<BiddingsPhotoViewModel> allBiddingPhoto = new List<BiddingsPhotoViewModel>(); foreach (var bidding in allBiddings) { BiddingsPhotoViewModel model = new BiddingsPhotoViewModel(); model.Bidding = bidding; model.Property = bidding.Property; model.Photo = await db.Photos.Where(ph => ph.PropertyId == model.Property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allBiddingPhoto.Add(model); } int pageSize = 12; int pageNumber = (page ?? 1); viewModel.BiddingsPhotoPaged = allBiddingPhoto.ToPagedList(pageNumber, pageSize); } else { ViewBag.CurrentSearch = "Properties"; } return View(viewModel); }
public async Task<ActionResult/*HomeViewModels*/> Index() { // Two Models in Single View HomeViewModels viewModel = new HomeViewModels(); // Find all types with number of items //var properties = db.Properties.Where(p => p.Availability.ToString().Contains("Yes")) // .GroupBy(p => p.OfType) // .Select(p => new ofTypeViewModel // { // Type = p.Key.ToString(), // Count = p.Count() // }).ToList(); // Find 3 Latest Feature Properties var allFeatured = await db.Properties.Where(p => p.Availability.ToString().Contains("Yes") && p.Featured.ToString().Equals("Yes")).OrderBy(p => p.Id).Take(3).ToListAsync(); List<HomePropertyPhotoViewModel> allFeaturedPhoto = new List<HomePropertyPhotoViewModel>(); foreach (var property in allFeatured) { HomePropertyPhotoViewModel model = new HomePropertyPhotoViewModel(); model.Property = property; model.Photo = await db.Photos.Where(ph => ph.PropertyId == property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allFeaturedPhoto.Add(model); } viewModel.FeaturePropertyPhoto = allFeaturedPhoto.ToList(); // Find all Types with related SubTypes //var types = db.OfSubTypes.Include(o => o.OfType).OrderBy(o => o.OfTypeID).ToList(); //viewModel.Types = types; var allTypeSubTypes = await db.OfTypes.ToListAsync(); List<HomeTypeSubTypesViewModel> allTypeSubTypesL = new List<HomeTypeSubTypesViewModel>(); foreach (var type in allTypeSubTypes) { HomeTypeSubTypesViewModel model = new HomeTypeSubTypesViewModel(); model.Type = type; model.SubTypes = await db.OfSubTypes.Where(o => o.OfTypeID == type.ID).OrderBy(o => o.ID).ToListAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allTypeSubTypesL.Add(model); } viewModel.TypeSubTypes = allTypeSubTypesL.ToList(); // Find all For with number of items count var fors = await db.Properties.Where(p => p.Availability.ToString().Contains("Yes")) .GroupBy(p => p.For) .Select(p => new HomeForViewModel { Title = p.Key.ToString(), Count = p.Count() }).ToListAsync(); viewModel.For = fors; // Find all AllowBidding with number of items count var biddings = await db.Properties.Where(p => p.Availability.ToString().Contains("Yes")) .GroupBy(p => p.AllowBidding) .Select(p => new HomeBiddingsViewModel { Status = p.Key.ToString(), Count = p.Count() }).ToListAsync(); viewModel.Biddings = biddings; var allProperties = await db.Properties.Where(p => p.Availability.ToString().Contains("Yes")).OrderByDescending(p => p.Views).Take(6).ToListAsync(); List<HomePropertyPhotoViewModel> allPropertyPhoto = new List<HomePropertyPhotoViewModel>(); foreach (var property in allProperties) { HomePropertyPhotoViewModel model = new HomePropertyPhotoViewModel(); model.Property = property; model.Photo = await db.Photos.Where(ph => ph.PropertyId == property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allPropertyPhoto.Add(model); } viewModel.PropertyPhoto = allPropertyPhoto.ToList(); var allRecents = await db.Properties.Where(p => p.Availability.ToString().Contains("Yes") && p.AllowBidding.ToString().Contains("Disabled")).OrderBy(p => p.Id).Take(4).ToListAsync(); List<HomeRecentPhotoViewModel> allRecentPhoto = new List<HomeRecentPhotoViewModel>(); foreach (var property in allRecents) { HomeRecentPhotoViewModel model = new HomeRecentPhotoViewModel(); model.Property = property; model.Photo = await db.Photos.Where(ph => ph.PropertyId == property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allRecentPhoto.Add(model); } viewModel.RecentPropertyPhoto = allRecentPhoto.ToList(); var allBiddings = await db.Biddings.Where(b => b.BiddingStatus.ToString().Contains("Active")).OrderByDescending(b => b.Id).Take(4).ToListAsync(); List<BiddingsPhotoViewModel> allBiddingPhoto = new List<BiddingsPhotoViewModel>(); foreach (var bidding in allBiddings) { BiddingsPhotoViewModel model = new BiddingsPhotoViewModel(); model.Bidding = bidding; model.Property = bidding.Property; model.OfSubType = (model.Property.OfSubType != null) ? await db.OfSubTypes.FindAsync(model.Property.OfSubType) : null; model.Photo = await db.Photos.Where(ph => ph.PropertyId == model.Property.Id).OrderBy(ph => ph.Id).Take(1).SingleOrDefaultAsync(); //model.Products = db.Photos.Where(ph => ph.PropertyID == property.ID).ToList(); allBiddingPhoto.Add(model); } viewModel.BiddingPropertyPhoto = allBiddingPhoto.ToList(); return View(viewModel); }