示例#1
0
 public ListingsController()
 {
     _svc              = ShackUpServiceFactory.GetService();
     listingRepo       = ListingRepositoryFactory.GetRepository();       //use if no service layer
     statesRepo        = StatesRepositoryFactory.GetRepository();        //use if no service layer
     bathroomTypesRepo = BathroomTypesRepositoryFactory.GetRepository(); //use if no service layer
 }
示例#2
0
 public ShackUpService()
 {
     statesRepo        = StatesRepositoryFactory.GetRepository();
     bathroomTypesRepo = BathroomTypesRepositoryFactory.GetRepository();
     listingsRepo      = ListingRepositoryFactory.GetRepository();
     acctRepo          = AccountRepositoryFactory.GetRepository();
 }
示例#3
0
        public ActionResult Add()
        {
            var model = new ListingAddViewModel();

            var statesRepo   = StatesRepositoryFactory.GetRepository();
            var bathroomRepo = BathroomTypesRepositoryFactory.GetRepository();

            model.States        = new SelectList(statesRepo.GetAll(), "StateId", "StateId");
            model.BathroomTypes = new SelectList(bathroomRepo.GetAll(), "BathroomTypeId", "BathroomTypeName");
            model.Listing       = new Listing();

            return(View(model));
        }
示例#4
0
        public ActionResult Add(ListingAddViewModel model)
        {
            if (ModelState.IsValid)
            {
                var repo = ListingRepositoryFactory.GetRepository();

                try
                {
                    model.Listing.UserId = AuthorizeUtilities.GetUserId(this);

                    if (model.ImageUpload != null && model.ImageUpload.ContentLength > 0)
                    {
                        var savepath = Server.MapPath("~/Images");

                        string fileName  = Path.GetFileNameWithoutExtension(model.ImageUpload.FileName);
                        string extension = Path.GetExtension(model.ImageUpload.FileName);

                        var filePath = Path.Combine(savepath, fileName + extension);

                        int counter = 1;
                        while (System.IO.File.Exists(filePath))
                        {
                            filePath = Path.Combine(savepath, fileName + counter.ToString() + extension);
                            counter++;
                        }

                        model.ImageUpload.SaveAs(filePath);
                        model.Listing.ImageFileName = Path.GetFileName(filePath);
                    }

                    repo.Insert(model.Listing);

                    return(RedirectToAction("Edit", new { id = model.Listing.ListingId }));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                var statesRepo   = StatesRepositoryFactory.GetRepository();
                var bathroomRepo = BathroomTypesRepositoryFactory.GetRepository();

                model.States        = new SelectList(statesRepo.GetAll(), "StateId", "StateId");
                model.BathroomTypes = new SelectList(bathroomRepo.GetAll(), "BathroomTypeId", "BathroomTypeName");

                return(View(model));
            }
        }
示例#5
0
        public ActionResult Edit(int id)
        {
            var model = new ListingEditViewModel();

            var statesRepo   = StatesRepositoryFactory.GetRepository();
            var bathroomRepo = BathroomTypesRepositoryFactory.GetRepository();
            var listingsRepo = ListingRepositoryFactory.GetRepository();

            model.States        = new SelectList(statesRepo.GetAll(), "StateId", "StateId");
            model.BathroomTypes = new SelectList(bathroomRepo.GetAll(), "BathroomTypeId", "BathroomTypeName");
            model.Listing       = listingsRepo.GetById(id);

            if (model.Listing.UserId != AuthorizeUtilities.GetUserId(this))
            {
                throw new Exception("Attempt to edit a listing you do not own! Naughty!");
            }

            return(View(model));
        }