Exemple #1
0
        public async Task <IActionResult> Track([Bind("ApartmentId,Name,Area,Rent,ApplicationFee,PetFee,MiscFees,AdminFee,DateAdded,Note,Bedrooms,Bathrooms,SqFt,Street,City,State,ZipCode,Latitude,Longitude,Website,PhotoUrl,Favorited,Visited")] Apartment apartment, string[] selectedAmenities)
        {
            if (selectedAmenities != null)
            {
                apartment.ApartmentAmenities = new List <ApartmentAmenity>();
                foreach (var amenity in selectedAmenities)
                {
                    var amenityToAdd = new ApartmentAmenity {
                        ApartmentId = apartment.ApartmentId, AmenityId = int.Parse(amenity)
                    };
                }
            }
            ModelState.Remove("User");
            if (ModelState.IsValid)
            {
                apartment.User = await _userManager.GetUserAsync(HttpContext.User);

                _context.Add(apartment);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(TrackedApartments)));
            }
            PopulateAssignedAmenities(apartment);
            return(View(apartment));
        }
Exemple #2
0
        private void UpdateApartmentAmenities(string[] selectedAmenities, Apartment apartmentToUpdate)
        {
            if (selectedAmenities == null)
            {
                apartmentToUpdate.ApartmentAmenities = new List <ApartmentAmenity>();
                return;
            }

            var selectedAmenitiesHS = new HashSet <string>(selectedAmenities);
            var apartmentAmenities  = new HashSet <int?>(apartmentToUpdate.ApartmentAmenities.Select(a => a.AmenityId));

            foreach (var amenity in _context.Amenities)
            {
                if (selectedAmenitiesHS.Contains(amenity.AmenityId.ToString()))
                {
                    if (!apartmentAmenities.Contains(amenity.AmenityId))
                    {
                        apartmentToUpdate.ApartmentAmenities.Add(
                            new ApartmentAmenity
                        {
                            ApartmentId = apartmentToUpdate.ApartmentId,
                            AmenityId   = amenity.AmenityId
                        });
                    }
                }
                else
                {
                    if (apartmentAmenities.Contains(amenity.AmenityId))
                    {
                        ApartmentAmenity amenityToRemove
                            = apartmentToUpdate
                              .ApartmentAmenities
                              .SingleOrDefault(i => i.AmenityId == amenity.AmenityId);
                        _context.Remove(amenityToRemove);
                    }
                }
            }
        }
 public HelperClass(ApartmentAmenity aa)
 {
     this.ApartmentAmenity = aa;
     this.IsFound          = false;
 }