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)); }
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; }