Пример #1
0
        public List <ListingModel> MyListings(int userId, bool approved)
        {
            var query = _context.Listing
                        .Include(x => x.ListingImages)
                        .Where(x => x.UserId == userId)
                        .Where(x => x.Approved == approved)
                        .AsQueryable();

            var list = query.ToList();
            List <Model.ListingModel> result = new List <ListingModel>();

            foreach (var item in list)
            {
                var newListingModel = new Model.ListingModel
                {
                    Bathrooms = item.Bathrooms,
                    Beds      = item.Beds,
                    Persons   = item.Persons,
                    City      = item.City,
                    Name      = item.Name,
                    ListingId = item.ListingId
                };
                //mapping images
                if (_context.ListingImage.Any(x => x.ListingId == item.ListingId))
                {
                    newListingModel.Image = _context.ListingImage.FirstOrDefault(x => x.ListingId == item.ListingId).Image;
                }

                result.Add(newListingModel);
            }

            return(result);
        }
Пример #2
0
        public ListingModel GetListing(int listingId)
        {
            var item = _context.Listing.SingleOrDefault(x => x.ListingId == listingId);

            var listing = new Model.ListingModel
            {
                Bathrooms = item.Bathrooms,
                Beds      = item.Beds,
                Persons   = item.Persons,
                City      = item.City,
                Name      = item.Name,
                ListingId = item.ListingId
            };

            if (_context.ListingImage.Any(x => x.ListingId == item.ListingId))
            {
                listing.Image = _context.ListingImage.FirstOrDefault(x => x.ListingId == item.ListingId).Image;
            }


            return(listing);
        }
Пример #3
0
        public List <ListingModel> GetListingsModels(ListingsModelsSearchRequest request)
        {
            var query = _context.Listing
                        .Include(x => x.ListingImages)
                        .Where(x => x.Approved)
                        .Where(x => x.UserId != request.UserId)
                        .AsQueryable();

            if (!string.IsNullOrWhiteSpace(request.City))
            {
                query = query.Where(x => x.City.StartsWith(request.City));
            }
            if (request.TerritoryId != null && request.TerritoryId != -1)
            {
                query = query.Where(x => x.TerritoryId == request.TerritoryId);
            }
            if (request.Persons != null && request.Persons != 0)
            {
                query = query.Where(x => x.Persons == request.Persons);
            }
            if (request.Beds != null && request.Beds != 0)
            {
                query = query.Where(x => x.Beds == request.Beds);
            }
            if (request.Bathrooms != null && request.Bathrooms != 0)
            {
                query = query.Where(x => x.Bathrooms == request.Bathrooms);
            }

            var list = query.ToList();

            list = list.OrderByDescending(x => x.DateApproved).ToList();
            if (request.Amenities != null && request.Amenities.Count > 0)
            {
                try
                {
                    for (int i = list.Count - 1; i >= 0; i--)
                    //foreach (var listing in list)
                    {
                        var listing = list[i];
                        foreach (var amenity in request.Amenities)
                        {
                            if (!_context.ListingAmenity
                                .Any(x => x.ListingId == listing.ListingId && x.AmenityId == amenity))
                            {
                                list.Remove(listing);
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine(ex.Message);
                }
            }


            List <Model.ListingModel> result = new List <ListingModel>();

            foreach (var item in list)
            {
                var newListingModel = new Model.ListingModel
                {
                    Bathrooms = item.Bathrooms,
                    Beds      = item.Beds,
                    Persons   = item.Persons,
                    City      = item.City,
                    Name      = item.Name,
                    ListingId = item.ListingId
                };
                //mapping images
                if (_context.ListingImage.Any(x => x.ListingId == item.ListingId))
                {
                    newListingModel.Image = _context.ListingImage.FirstOrDefault(x => x.ListingId == item.ListingId).Image;
                }

                result.Add(newListingModel);
            }

            return(result);
        }