Beispiel #1
0
        public ActionResult NewStep1(LocationNewGeneralViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            TempData["NewLocationStepOneData"] = model;

            return(RedirectToAction("NewStep2", "Locations"));
        }
Beispiel #2
0
        public ActionResult NewStep4(LocationNewImagesViewModel model)
        {
            if (!VerifyDataExists(step: 4))
            {
                return(RedirectToAction("New"));
            }

            LocationNewGeneralViewModel    generalData    = (LocationNewGeneralViewModel)TempData["NewLocationStepOneData"];
            LocationNewAddressViewModel    addressData    = (LocationNewAddressViewModel)TempData["NewLocationStepTwoData"];
            LocationNewFacilitiesViewModel facilitiesData = (LocationNewFacilitiesViewModel)TempData["NewLocationStepThreeData"];

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            try
            {
                var locationsRepository           = _unitOfWork.LocationsRepository;
                var locationsFacilitiesRepository = _unitOfWork.LocationFacilitiesRepository;

                DbLocation dbLocation = new DbLocation();
                dbLocation.Name              = generalData.Name;
                dbLocation.Description       = generalData.Description;
                dbLocation.Capacity          = generalData.Capacity;
                dbLocation.Organisation      = generalData.Organisation;
                dbLocation.PricePerDay       = generalData.PricePerDay;
                dbLocation.AddressCity       = addressData.AddressCity;
                dbLocation.AddressNumber     = addressData.AddressNumber;
                dbLocation.AddressPostalCode = addressData.AddressPostalCode;
                dbLocation.AddressProvince   = addressData.AddressProvince;
                dbLocation.AddressStreet     = addressData.AddressStreet;
                dbLocation.CreatedByUserId   = ((AuthenticatedUser)User).Id;

                dbLocation.Facilities = facilitiesData.SelectedDatabaseIds.Select(x =>
                {
                    DbLocationFacility facility = new DbLocationFacility {
                        Id = x
                    };
                    locationsFacilitiesRepository.Attach(facility);
                    return(facility);
                }).ToList();

                // Save the location first because we want the location Id to store our images
                locationsRepository.Insert(dbLocation);

                string locationImagesBasePath = HostingEnvironment.MapPath("~/Resources/Location/" + dbLocation.Id + "/Images/");
                Directory.CreateDirectory(locationImagesBasePath);

                string bannerImageFileName = null;
                foreach (var file in model.Images)
                {
                    if (file == null || file.ContentLength <= 0)
                    {
                        continue;
                    }

                    string fileExtension = Path.GetExtension(file.FileName).ToLower();
                    if (fileExtension != ".jpg" && fileExtension != ".jpeg" && fileExtension != ".png")
                    {
                        continue;
                    }

                    string fileName = Path.GetFileName(file.FileName);
                    string filePath = Path.Combine(locationImagesBasePath, fileName);
                    file.SaveAs(filePath);

                    if (bannerImageFileName == null)
                    {
                        bannerImageFileName = fileName;
                    }
                }

                dbLocation.BannerImageFileName = bannerImageFileName;
                locationsRepository.Update(dbLocation);

                TempData["AlertType"]    = "success";
                TempData["AlertMessage"] = "De locatie is succesvol aangemaakt";

                return(RedirectToAction("Details", "Locations", new { id = dbLocation.Id, Area = string.Empty }));
            }
            catch
            {
                TempData["AlertType"]    = "danger";
                TempData["AlertMessage"] = "Er is iets fout gelopen tijdens het verwerken van de nieuwe locatie!";

                // We've previously accessed our data, indicate that we want to keep it
                TempData["NewLocationStepOneData"]   = generalData;
                TempData["NewLocationStepTwoData"]   = addressData;
                TempData["NewLocationStepThreeData"] = facilitiesData;

                return(View(model));
            }
        }