public static SearchResult GetAllRentalProperties(RentalListingSearchModel model) { var result = new SearchResult { SearchCount = 0 }; return(result); }
public ActionResult Index(RentalListingSearchModel model) { var user = User.Identity.Name; var login = AccountService.GetLoginByEmail(user); var roles = AccountService.GetUserRolesbyEmail(user); var isTenant = roles.Contains(5); if (String.IsNullOrWhiteSpace(model.SortOrder)) { model.SortOrder = "Latest Listing"; } model.UserId = login.Id; var res = RentalService.GetAllRentalProperties(model); model.PagedInput = new PagedInput { ActionName = "Index", ControllerName = "Home", PagedLinkValues = new RouteValueDictionary(new { SortOrder = model.SortOrder, SearchString = model.SearchString }) }; var rvr = new RouteValueDictionary(new { SearchString = model.SearchString }); var sortOrders = new List <SortOrderModel>(); sortOrders.Add(new SortOrderModel { SortOrder = "Title", ActionName = "Index", RouteValues = rvr.AddRouteValue("SortOrder", "Title") }); sortOrders.Add(new SortOrderModel { SortOrder = "Title(Desc)", ActionName = "Index", RouteValues = rvr.AddRouteValue("SortOrder", "Title(Desc)") }); sortOrders.Add(new SortOrderModel { SortOrder = "Lowest Rent", ActionName = "Index", RouteValues = rvr.AddRouteValue("SortOrder", "Lowest Rent") }); sortOrders.Add(new SortOrderModel { SortOrder = "Highest Rent", ActionName = "Index", RouteValues = rvr.AddRouteValue("SortOrder", "Highest Rent") }); sortOrders.Add(new SortOrderModel { SortOrder = "Latest Available Date", ActionName = "Index", RouteValues = rvr.AddRouteValue("SortOrder", "Latest Available Date") }); sortOrders.Add(new SortOrderModel { SortOrder = "Earliest Available Date", ActionName = "Index", RouteValues = rvr.AddRouteValue("SortOrder", "Earliest Available Date") }); sortOrders.Add(new SortOrderModel { SortOrder = "Earliest Listing", ActionName = "Index", RouteValues = rvr.AddRouteValue("SortOrder", "Earliest Listing") }); sortOrders.Add(new SortOrderModel { SortOrder = "Latest Listing", ActionName = "Index", RouteValues = rvr.AddRouteValue("SortOrder", "Latest Listing") }); var tenant = TenantService.GetTenantByEmail(user); model.IsTenantProfileComplete = tenant?.IsCompletedPersonalProfile ?? false; model.IsUserTenant = isTenant; model.SortOrders = sortOrders; model.SearchCount = res.SearchCount; if (String.IsNullOrWhiteSpace(model.SearchString)) { model.Page = 1; } model.PageCount = res.Items.PageCount; model.Items = res.Items; TempData["CurrentLink"] = "RentallListing"; return(View(model)); }
public ActionResult Index(RentalListingSearchModel model) { TempData["CurrentLink"] = "RentallListing"; return(View(model)); }
public static SearchResult GetAllRentalProperties(RentalListingSearchModel model) { using (var db = new KeysEntities()) { var data = db.RentalListing.Where(x => x.IsActive == true) .Select(x => new RentListingViewModel { Model = new RentListingModel { Id = x.Id, PropertyId = x.PropertyId, Title = x.Title, Description = x.Description.Trim(), MovingCost = x.MovingCost ?? 0, TargetRent = x.TargetRent, AvailableDate = x.AvailableDate, Furnishing = x.Furnishing, IdealTenant = x.IdealTenant, OccupantCount = x.OccupantCount ?? 0, PetsAllowed = x.PetsAllowed, MediaFiles = x.RentalListingMedia.Select(y => new MediaModel { Id = y.Id, Status = "load", NewFileName = y.NewFileName, OldFileName = y.OldFileName }).ToList(), }, IsOwner = db.OwnerProperty.FirstOrDefault(y => y.PropertyId == x.PropertyId).OwnerId == model.UserId, IsApplied = db.RentalApplication.Any(y => y.RentalListingId == x.Id && y.PersonId == model.UserId), Bedrooms = x.Property.Bedroom ?? 0, Bathrooms = x.Property.Bathroom ?? 0, ParkingSpaces = x.Property.ParkingSpace ?? 0, LandSqm = x.Property.LandSqm ?? 0, FloorArea = x.Property.FloorArea ?? 0, CreatedOn = x.CreatedOn, Address = new AddressViewModel { AddressId = x.Property.Address.AddressId, CountryId = x.Property.Address.CountryId, Number = x.Property.Address.Number.Replace(" ", ""), Street = x.Property.Address.Street.Trim(), City = x.Property.Address.City.Trim(), Suburb = x.Property.Address.Suburb.Trim() ?? "", PostCode = x.Property.Address.PostCode.Replace(" ", ""), Latitude = x.Property.Address.Lat, Longitude = x.Property.Address.Lng, }, PropertyAddress = (x.Property.Address.Number.Replace(" ", "")) + " " + (x.Property.Address.Street.Trim() ?? "") + " " + (x.Property.Address.Suburb.Trim() ?? "") + " " + (x.Property.Address.City.Trim() ?? "") + "-" + (x.Property.Address.PostCode.Replace(" ", "")), PropertyType = x.Property.PropertyType.Name, RentalPaymentType = x.Property.TargetRentType.Name, Latitude = x.Property.Address.Lat, Longitude = x.Property.Address.Lng, }); var allItems = data.OrderByDescending(x => x.CreatedOn).ToPagedList(model.Page, 10); switch (model.SortOrder) { case "Title": data = data.OrderBy(s => s.Model.Title); break; case "Title(Desc)": data = data.OrderByDescending(s => s.Model.Title); break; case "Highest Rent": data = data.OrderByDescending(s => s.Model.TargetRent); break; case "Lowest Rent": data = data.OrderBy(s => s.Model.TargetRent); break; case "Latest Available Date": data = data.OrderByDescending(s => s.Model.AvailableDate); break; case "Earliest Available Date": data = data.OrderBy(s => s.Model.AvailableDate); break; case "Earliest Listing": data = data.OrderBy(s => s.CreatedOn); break; case "Latest Listing": data = data.OrderByDescending(s => s.CreatedOn); break; default: data = data.OrderByDescending(s => s.CreatedOn); break; } if (!String.IsNullOrWhiteSpace(model.SearchString)) { SearchUtil searchTool = new SearchUtil(); int searchType = searchTool.CheckDisplayType(model.SearchString); string formatString = searchTool.ConvertString(model.SearchString); switch (searchType) { case 1: data = data.AsEnumerable().Where(r => r.Model.Title.ToLower().EndsWith(formatString) || r.PropertyAddress.ToLower().EndsWith(formatString) || ("$" + r.Model.TargetRent.ToString()).EndsWith(formatString) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("MMMM d yyyy").ToLower().EndsWith(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("d MMMM yyyy").ToLower().EndsWith(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("MMM d yyyy").ToLower().EndsWith(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("d MMM yyyy").ToLower().EndsWith(formatString.Replace(",", "")))).AsQueryable(); break; case 2: data = data.AsEnumerable().Where(r => r.Model.Title.ToLower().StartsWith(formatString) || r.PropertyAddress.ToLower().StartsWith(formatString) || ("$" + r.Model.TargetRent.ToString()).StartsWith(formatString) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("MMMM d yyyy").ToLower().StartsWith(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("d MMMM yyyy").ToLower().StartsWith(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("MMM d yyyy").ToLower().StartsWith(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("d MMM yyyy").ToLower().StartsWith(formatString.Replace(",", "")))).AsQueryable(); break; case 3: data = data.AsEnumerable().Where(r => r.Model.Title.ToLower().Contains(formatString) || r.PropertyAddress.ToLower().Contains(formatString) || ("$" + r.Model.TargetRent.ToString()).Contains(formatString) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("MMMM d yyyy").ToLower().Contains(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("d MMMM yyyy").ToLower().Contains(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("MMM d yyyy").ToLower().Contains(formatString.Replace(",", ""))) || (r.Model.AvailableDate != null && r.Model.AvailableDate.Value.ToString("d MMM yyyy").ToLower().Contains(formatString.Replace(",", "")))).AsQueryable(); break; } } var items = data.ToPagedList(model.Page, 10); var count = items.Count; items = count == 0 ? allItems : items; items.ToList().ForEach(x => { x.Model.MediaFiles.ForEach(y => y.InjectMediaModelViewProperties()); x.IsInWatchlist = db.RentalWatchList.FirstOrDefault(y => y.PersonId == model.UserId && y.RentalListingId == x.Model.Id && y.IsActive) != null; }); var result = new SearchResult { SearchCount = items.Count, Items = count == 0 ? allItems : items }; return(result); } }