Example #1
0
        public void AddPostExecute()
        {
            AddPostView addPostView = new AddPostView(User);

            addPostView.ShowDialog();
            ListPost = posts.GetUserPosts(User);
        }
 public AddPostViewModel(AddPostView addPostView, vwUser user)
 {
     this.addPostView = addPostView;
     User             = user;
     Post             = new vwPost();
     Post.UserId      = User.UserId;
 }
Example #3
0
        public IActionResult AddPost()
        {
            var model = new AddPostView();

            model.Profile = _departmentProfileService.GetOrInitializeDepartmentProfile(DepartmentId);
            model.Article = new DepartmentProfileArticle();

            var department = _departmentsService.GetDepartmentById(DepartmentId);

            model.Article.StartOn = DateTime.UtcNow.TimeConverter(department);

            return(View(model));
        }
Example #4
0
        public IActionResult AddPost(AddPostView model, IFormCollection form)
        {
            model.Profile = _departmentProfileService.GetOrInitializeDepartmentProfile(DepartmentId);

            if (ModelState.IsValid)
            {
                model.Article.DepartmentProfileId = model.Profile.DepartmentProfileId;
                model.Article.CreatedByUserId     = UserId;
                model.Article.CreatedOn           = DateTime.UtcNow;

                _departmentProfileService.SaveArticle(model.Article);

                return(RedirectToAction("Posts"));
            }

            return(View(model));
        }
 public AddPostPresenter(AddPostView view)
 {
     this.mView = view;
 }
Example #6
0
        public async Task <IActionResult> AddPost(AddPostView post)
        {
            var topic = _context.Topics.Find(post.TopicId);

            if (topic == null)
            {
                return(RedirectToAction("Index"));
            }

            var vote = GetUserTopicVote(topic);

            IActionResult ReturnForm()
            {
                ViewBag.ScrollTo = "reply-form";
                return(View("View", new TopicView
                {
                    Topic = topic,
                    Posts = GetTopicPosts(topic),
                    AddPostView = post,
                    CurrentVote = vote?.Value ?? 0,
                }));
            }

            if (ModelState.IsValid)
            {
                Image image = null;
                if (post.Image != null)
                {
                    // TODO: migrate to dedicated image store service (like @alice2k did)
                    if (post.Image.Length <= MaxImageSize)
                    {
                        using (var str = post.Image.OpenReadStream())
                            image = _context.UploadImage(str, post.Image.FileName ?? "image");
                    }

                    if (image == null)
                    {
                        ModelState.AddModelError("Image", "Invalid image");
                        return(ReturnForm());
                    }
                }

                var now  = DateTime.Now;
                var user = await GetUserAsync();

                var newPost = new Post
                {
                    Topic   = topic,
                    Author  = user,
                    Image   = image,
                    Content = post.Content,
                    Time    = now,
                };
                _context.Posts.Add(newPost);
                topic.UpdateTime = now;
                _context.SaveChanges();
                return(Redirect(Url.Action("View", new { id = post.TopicId }) + "#post-" + newPost.Id));
            }

            return(ReturnForm());
        }