public ActionResult Edit(int?id) { var accommodation = _db.Accommodations.SingleOrDefault(a => a.Id == id); if (accommodation == null) { return(HttpNotFound()); } var viewModel = new AccommodationFormViewModel(accommodation); var allAmenities = _db.Amenities.OrderBy(a => a.Description).ToList(); var accommodationAmenities = _db.Accommodations .Where(a => a.Id == id).Single() .Amenities.ToList(); var checkBoxListItems = new List <CheckBoxListItem>(); foreach (var amenity in allAmenities) { checkBoxListItems.Add(new CheckBoxListItem() { Id = amenity.Id, Display = amenity.Description, IsChecked = accommodationAmenities.Where(a => a.Id == amenity.Id).Any() }); } viewModel.Amenities = checkBoxListItems; viewModel.Categories = _db.Categories.ToList(); return(View("AccommodationForm", viewModel)); }
public ActionResult Save(AccommodationFormViewModel accommodationModel) { if (!ModelState.IsValid) { var viewModel = new AccommodationFormViewModel { Categories = _db.Categories.ToList() }; return(View("AccommodationForm", viewModel)); } var userId = User.Identity.GetUserId(); if (accommodationModel.Id == 0) { AccommodationManager.Add(accommodationModel, userId); } else { AccommodationManager.Update(accommodationModel); } return(RedirectToAction("Index", "Accommodations")); }
public static void Update(AccommodationFormViewModel accommodationModel) { using (CozySmartContext _db = new CozySmartContext()) { var selectedAmenities = accommodationModel.Amenities.Where(a => a.IsChecked).Select(a => a.Id).ToList(); var savingAccommodation = _db.Accommodations.Single(a => a.Id == accommodationModel.Id); savingAccommodation.Title = accommodationModel.Title; savingAccommodation.Location = accommodationModel.Location; savingAccommodation.Adress = accommodationModel.Adress; savingAccommodation.Thumbnail = accommodationModel.Thumbnail; savingAccommodation.Bedrooms = accommodationModel.Bedrooms; savingAccommodation.Baths = accommodationModel.Baths; savingAccommodation.Description = accommodationModel.Description; savingAccommodation.Price = accommodationModel.Price; savingAccommodation.CategoryId = accommodationModel.CategoryId; savingAccommodation.Amenities.Clear(); foreach (var amenityId in selectedAmenities) { var amenity = _db.Amenities.Find(amenityId); savingAccommodation.Amenities.Add(amenity); } _db.SaveChanges(); } }
public static void Add(AccommodationFormViewModel accommodationModel, string userId) { using (CozySmartContext _db = new CozySmartContext()) { var defaultAvailability = new Availability(accommodationModel.Id); var selectedAmenities = accommodationModel.Amenities.Where(a => a.IsChecked).Select(a => a.Id).ToList(); var accommodation = new Accommodation() { Id = accommodationModel.Id, Title = accommodationModel.Title, Location = accommodationModel.Location, Adress = accommodationModel.Adress, Thumbnail = accommodationModel.Thumbnail, Description = accommodationModel.Description, Occupancy = accommodationModel.Occupancy, Bedrooms = accommodationModel.Bedrooms, Baths = accommodationModel.Baths, Price = accommodationModel.Price, CategoryId = accommodationModel.CategoryId, ApplicationUserId = userId }; accommodation.Availabilities.Add(defaultAvailability); foreach (var amenityId in selectedAmenities) { var amenity = _db.Amenities.Find(amenityId); accommodation.Amenities.Add(amenity); } _db.Accommodations.Add(accommodation); _db.SaveChanges(); } }
public ActionResult New() { var viewModel = new AccommodationFormViewModel(); var allAmenities = _db.Amenities.OrderBy(a => a.Description).ToList(); var checkBoxListItems = new List <CheckBoxListItem>(); foreach (var amenity in allAmenities) { checkBoxListItems.Add(new CheckBoxListItem() { Id = amenity.Id, Display = amenity.Description, IsChecked = false }); } viewModel.Amenities = checkBoxListItems; viewModel.Categories = _db.Categories.ToList(); return(View("AccommodationForm", viewModel)); }