コード例 #1
0
        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));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
        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();
            }
        }
コード例 #5
0
        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));
        }