예제 #1
0
        public async Task <IActionResult> EditPost(IndexPostViewModel model)
        {
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            User u = _repository.GetUser(Guid.Parse(user.Id));

            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            //Todo permission
            if (!u.Posts.Contains(new Post()
            {
                Id = Guid.Parse(model.Id)
            }))
            {
                return(Forbid());
            }
            Post post = new Post(model.Title, model.Text)
            {
                Id = Guid.Parse(model.Id)
            };

            _repository.UpdatePost(post);
            post = _repository.GetPost(post.Id);
            if (post.Event != null)
            {
                return(Redirect("/event/Details?eventId=" + post.Event.Id));
            }
            return(Redirect("/home"));
        }
예제 #2
0
        public async Task <IActionResult> EditPost(string postId)
        {
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            User u    = _repository.GetUser(Guid.Parse(user.Id));
            Post post = _repository.GetPosts(u.ActiveGroup.Id)
                        .FirstOrDefault(p => p.Id == Guid.Parse(postId));

            if (post == null)
            {
                return(NoContent());
            }
            if (post.User.Id != u.Id)
            {
                return(Forbid());
            }

            IndexPostViewModel model = new IndexPostViewModel()
            {
                Id           = post.Id.ToString(),
                Text         = post.Text,
                Title        = post.Title,
                TimeModified = post.ModifiedOn,
                TimePosted   = post.CreatedOn,
                User         = post.User.Email
            };

            return(View(model));
        }
예제 #3
0
        public async Task <IActionResult> IndexAsync(int?page)
        {
            if (User.Identity.IsAuthenticated)
            {
                ViewData["HeaderText"] = $"Dear {(await _userManager.GetUserAsync(User)).GivenName}";
            }
            else
            {
                ViewData["HeaderText"] = "Dear Coder";
            }

            ViewData["SubheaderText"] = "Tech letters from Kasey";

            var pageNumber = page ?? 1;
            var pageSize   = 5;


            //Load the view with all blog data
            var allBlogs = await _context.Blogs.OrderByDescending(b => b.Created)
                           .ToPagedListAsync(pageNumber, pageSize);

            var viewModel = new IndexPostViewModel()
            {
                LatestPost = await _context.Posts.OrderByDescending(p => p.Created).FirstOrDefaultAsync(p => p.Created != null && p.PublishState == Enums.PublishState.ProductionReady),
                Blogs      = allBlogs
            };

            return(View(viewModel));
        }
예제 #4
0
        public ActionResult Index()
        {
            var model = new IndexPostViewModel()
            {
                ID = Guid.NewGuid(),
                DisplayUserName = this.User.Identity.GetUserId()
            };

            return(View(model));
        }
예제 #5
0
        public ActionResult Index()
        {
            var viewModel = new IndexPostViewModel
            {
                Posts          = postService.GetPosts().ProjectTo <SingleDetailsPostViewModel>(),
                RecentComments = Data.Comments.All.OrderByDescending(c => c.CreatedOn).Take(6).ProjectTo <IndexCommentViewModel>()
            };

            return(View(viewModel));
        }
예제 #6
0
        public async Task <IActionResult> Index(string sourceName, CancellationToken cancellationToken, int page = 1, SortState sortOrder = SortState.DateOrder)
        {
            var records = await _recordService.GetAsync(cancellationToken);

            var sourceViewModel = new SourceViewModel();
            var index           = 1;

            foreach (var source in records.Select(i => i.NameSource).GroupBy(i => i))
            {
                sourceViewModel.Sources.Add(new Source
                {
                    Id   = index,
                    Name = source.Key
                });

                index++;
            }
            if (!string.IsNullOrEmpty(sourceName) && !sourceName.Equals("Все"))
            {
                records = records.Where(i => i.NameSource == sourceName).ToList();
                sourceViewModel.Select(sourceName);
            }

            switch (sortOrder)
            {
            case SortState.SourceOrder:
                records = records.OrderByDescending(i => i.NameSource).ToList();
                break;

            default:
                records = records.OrderByDescending(i => i.PublishDate).ToList();
                break;
            }

            var count = records.Count;
            var news  = records.Skip((page - 1) * _pageSize).Take(_pageSize).ToList();


            var viewModel = new IndexPostViewModel
            {
                PageViewModel = new PageViewModel(count, page, _pageSize),
                News          = news.Select(i => new News
                {
                    Source      = i.NameSource,
                    PublishDate = i.PublishDate,
                    Tittle      = i.Title,
                    Description = i.Description
                }).ToList(),
                SourceViewModel = sourceViewModel,
                SortViewModel   = new SortViewModel(sortOrder)
            };

            return(View("IndexPost", viewModel));
        }
예제 #7
0
        public ActionResult Index()
        {
            var postService = new PostService();

            var model = new IndexPostViewModel();

            model.Posts = postService.SearchPostsByUserId(new SearchPostsByUserIdRequest {
                AspNetUserId = User.Identity.GetUserId()
            }).Posts.OrderByDescending(x => x.EffectDate).ToList();

            return(View(model));
        }
예제 #8
0
        public ActionResult Index(IndexPostViewModel model)
        {
            string authorId = this.User.Identity.GetUserId();

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

            this.postService.CreatePost(model.Title, model.ImageTarget, model.ImageUrl, model.ImageInfo, model.Location, model.Time, authorId);

            return(this.RedirectToRoute("default", null));
        }