예제 #1
0
        public ActionResult Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(RedirectToAction(nameof(HomeController.Index)));
            }

            var userId = User.Identity.GetUserId();

            var post = DbContext.BlogPosts.FirstOrDefault(
                p => p.Id == id);

            if (post == null)
            {
                return(RedirectToAction(nameof(HomeController.Index)));
            }

            post.DateUpdated = DateTime.Now;

            var model = new CreateHomeViewModel();

            model.Title       = post.Title;
            model.Body        = post.Body;
            model.Published   = post.Published;
            model.DateCreated = post.DateCreated;
            model.DateUpdated = post.DateUpdated;
            model.Slug        = post.Slug;
            return(View(model));
        }
예제 #2
0
        //[Authorize(Roles = "Company")]
        public async Task <IActionResult> Create()
        {
            var model = new CreateHomeViewModel
            {
                Categories = await context.Categories.ToDictionaryAsync(x => x.Id, x => x.Name),
                Cities     = await context.Cities.ToDictionaryAsync(x => x.Id, x => x.Name)
            };

            return(View(model));
        }
        public IActionResult Index()
        {
            var client = new RestClient();

            CreateHomeViewModel createHomeViewModel = new CreateHomeViewModel();

            var requestFriend  = new RestRequest("http://localhost:5003/api/friends", DataFormat.Json);
            var responseFriend = client.Get <List <Friend> >(requestFriend);

            createHomeViewModel.Friends = responseFriend.Data.Count;
            var requestCountry  = new RestRequest("http://localhost:5000/api/countries", DataFormat.Json);
            var responseCountry = client.Get <List <Country> >(requestCountry);

            createHomeViewModel.Countries = responseCountry.Data.Count;
            var requestState  = new RestRequest("http://localhost:5000/api/states", DataFormat.Json);
            var responseState = client.Get <List <State> >(requestState);

            createHomeViewModel.States = responseState.Data.Count;

            return(View(createHomeViewModel));
        }
예제 #4
0
        public ActionResult Details(string slug)
        {
            if (string.IsNullOrEmpty(slug))
            {
                return(RedirectToAction(nameof(HomeController.Index)));
            }

            BlogPost post;

            if (User.IsInRole("Admin"))
            {
                post = DbContext.BlogPosts.FirstOrDefault(p =>
                                                          p.Slug == slug);
            }
            else
            {
                post = DbContext.BlogPosts.FirstOrDefault(p =>
                                                          p.Slug == slug && p.Published == true);
            }



            if (post == null)
            {
                return(RedirectToAction(nameof(HomeController.Index)));
            }

            var model = new CreateHomeViewModel();

            model.Title       = post.Title;
            model.Body        = post.Body;
            model.Id          = post.Id;
            model.Published   = post.Published;
            model.ImageUrl    = post.Image;
            model.Comments    = post.Comments;
            model.DateCreated = post.DateCreated;
            model.DateUpdated = post.DateUpdated;
            model.Slug        = post.Slug;
            return(View(model));
        }
예제 #5
0
        public async Task <IActionResult> Create(CreateHomeViewModel model)
        {
            var currentUser = await userManager.GetUserAsync(User);

            var home = new Home
            {
                Address       = model.Address,
                BuildDate     = model.BuildDate,
                CategoryId    = model.CategoryId,
                CityId        = model.CityId,
                CreateDate    = DateTime.Now,
                CreditTerm    = 20,
                Description   = model.Description,
                Price         = model.Price,
                Rooms         = model.Rooms,
                UserId        = currentUser.Id,
                YearlyPercent = 30
            };

            await context.Homes.AddAsync(home);

            await context.SaveChangesAsync();

            if (model.Images != null)
            {
                foreach (var file in model.Images)
                {
                    string fileName = await AddFile(file);

                    await context.HomeImages.AddAsync(new HomeImage { HomeId = home.Id, ImagePath = fileName });
                }
            }

            await context.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
예제 #6
0
        public IActionResult Create(CreateHomeViewModel vm)
        {
            // if(ModelState.IsValid) add annotations later [Required] in model for attributes
            Home      newHome = vm.Home;
            IFormFile image   = vm.Image;

            // upload image
            if (image != null && image.Length > 0)
            {
                // _environment.WebRootPath --> ~/webroot/images/homes
                string storageFolder = Path.Combine(_environment.WebRootPath, "images/homes");

                // 000-1234-dsaf-asgsa.jpg
                string newImageName = $"{Guid.NewGuid().ToString()}{Path.GetExtension(image.FileName)}";

                // ~/wwwroot/images/home/000-1234-dsaf-asgsa.jpg
                string fullPath = Path.Combine(storageFolder, newImageName);

                using (var stream = new FileStream(fullPath, FileMode.Create))
                {
                    image.CopyTo(stream);
                }

                // append new image location to new Home
                newHome.ImageURL = $"/images/homes/{newImageName}";
            }

            // Add the landlord
            newHome.LandlordId = _userManager.GetUserId(User);

            // save newHome
            _homeService.Create(newHome);


            return(RedirectToAction("List"));
        }
예제 #7
0
 public ActionResult Edit(int id, CreateHomeViewModel model)
 {
     model.DateUpdated = DateTime.Now;
     return(SavePost(id, model));
 }
예제 #8
0
        private ActionResult SavePost(int?id, CreateHomeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }


            if (DbContext.BlogPosts.Any(p => p.Title == model.Title &&
                                        (!id.HasValue || p.Id != id.Value)))
            {
                ModelState.AddModelError(nameof(CreateHomeViewModel.Title),
                                         "Post Title should be unique");

                return(View());
            }

            string fileExtension;

            //Validating file upload
            if (model.Image != null)
            {
                fileExtension = Path.GetExtension(model.Image.FileName);

                if (!ImageHelper.AllowedFileExtensions.Contains(fileExtension))
                {
                    ModelState.AddModelError(nameof(CreateHomeViewModel.Image), "File extension is not allowed.");
                    return(View());
                }
            }

            BlogPost post;

            if (!id.HasValue)
            {
                post = new BlogPost();
                DbContext.BlogPosts.Add(post);
            }
            else
            {
                post = DbContext.BlogPosts.FirstOrDefault(p => p.Id == id);

                if (post == null)
                {
                    return(RedirectToAction(nameof(HomeController.Index)));
                }
            }

            post.Title       = model.Title;
            post.Body        = model.Body;
            post.Published   = model.Published;
            post.Slug        = ToUrlSlug(model.Title);
            post.UserId      = User.Identity.GetUserId();
            post.DateUpdated = model.DateUpdated;

            //Handling file upload
            if (model.Image != null)
            {
                if (!Directory.Exists(ImageHelper.MappedUploadFolder))
                {
                    Directory.CreateDirectory(ImageHelper.MappedUploadFolder);
                }

                var fileName         = model.Image.FileName;
                var fullPathWithName = ImageHelper.MappedUploadFolder + fileName;

                model.Image.SaveAs(fullPathWithName);

                post.Image = ImageHelper.UploadFolder + fileName;
            }

            DbContext.SaveChanges();

            return(RedirectToAction(nameof(HomeController.Index)));
        }
예제 #9
0
 public ActionResult Create(CreateHomeViewModel model)
 {
     return(SavePost(null, model));
 }