Esempio n. 1
0
 public async Task<IActionResult> Tagged(string tag)
 {
     var posts = await _postRepository.GetResults(p => p.Tags.Contains(tag));
     foreach (var post in posts)
     {
         await post.SetUser(_userManager);
     }
     var model = new BlogViewModel()
     {
         RecentPosts = posts.OrderByDescending(o => o.DatePublished).ToList()
     };
     return View(nameof(BlogController.Index), model);
 }
Esempio n. 2
0
 public async Task<IActionResult> Index()
 {
     var posts = await _postRepository.GetResults();
     foreach (var post in posts)
     {
         await post.SetUser(_userManager);
     }
     var model = new BlogViewModel()
     {
         RecentPosts = posts.OrderByDescending(o => o.DatePublished).ToList()
     };
     return View(model);
 }
Esempio n. 3
0
        public async Task<IActionResult> EditPost(string id)
        {
            var model = new BlogViewModel();

            if (string.IsNullOrEmpty(id))
            {
                var posts = await _postRepository.GetResults();
                model.RecentPosts = posts.OrderByDescending(o => o.DatePublished).ToList();
                return View("EditPostList", model);
            }
            else
            {
                var postToEdit = await _postRepository.GetResults(p => p.Id == id, 1);
                var post = postToEdit.First();

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

                model.Body = post.Content;
                model.Title = post.Title;
                model.Id = post.Id;
                model.Tags = post.Tags;

                var filePath = GetFilePath(id);

                model.Images = Directory.Exists(filePath) 
                    ? Directory.GetFiles(filePath)
                        .Select(path => path.Substring(path.IndexOf("\\img\\"), path.Length - path.IndexOf("\\img\\")))
                        .ToArray() 
                    : new string[0];
               
                return View(model);
            }
        }
Esempio n. 4
0
        public async Task<IActionResult> EditPost(BlogViewModel model)
        {
            if (ModelState.IsValid)
            {
                var postToEdit = await _postRepository.GetResults(p => p.Id == model.Id, 1);
                var post = postToEdit.First();

                post.Title = model.Title;
                post.Content = model.Body;
                post.Tags = model.Tags;
                post.DateUpdated = DateTime.Now;

                await _postRepository.UpdateAsync(post);
            }
            else
            {
                return View(model);
            }

            return RedirectToAction(nameof(BlogController.Index), nameof(BlogController).ControllerName());
        }