Beispiel #1
0
        public ActionResult NewPost(NewPostViewModel viewModel)
        {
            var           repository   = DIContainer.Kernel.Get <IRepository>();
            ApprovalEnums autoApproval = ApprovalEnums.Pending;

            if (UserManager.IsInRole(UserManager.FindByName(User.Identity.Name).Id, "Admin"))
            {
                autoApproval = ApprovalEnums.Approved;
            }

            var tags = repository.TagStringToTags(viewModel.ListOfTags);

            Post newPost = new Post
            {
                ApprovalStatus = autoApproval,
                Body           = viewModel.Body,
                Date           = DateTime.Now,
                IsFeatured     = false,
                Subject        = viewModel.Subject,
                Tags           = tags,
                User           = UserManager.FindByName(User.Identity.Name)
            };

            repository.SaveNewPost(newPost);
            return(RedirectToAction("PostView"));
        }
        public async Task BlogController_New_For_Post_Does_Not_Add_Post_If_Invalid()
        {
            // Arrange
            DateTime now = DateTime.UtcNow;

            now = now.AddMilliseconds(now.Millisecond * -1);

            NewPostViewModel model = new NewPostViewModel();

            using (BlogController target = new BlogController())
            {
                target.ModelState.AddModelError("Body", "A body must be specified.");

                // Act
                ActionResult result = await target.New(model);

                // Assert
                Assert.IsNotNull(result);
                Assert.IsInstanceOfType(result, typeof(ViewResult));

                ViewResult view = result as ViewResult;

                Assert.IsNotNull(view.Model);
                Assert.AreSame(model, view.Model);
                Assert.AreEqual(string.Empty, view.ViewName);
            }
        }
Beispiel #3
0
        private void SavePost(NewPostViewModel newPost, bool publishPost)
        {
            if (string.IsNullOrEmpty(newPost.Excerpt))
            {
                newPost.Excerpt = _excerptGenerator.CreateExcerpt(newPost.Body);
            }

            Post post = new Post {
                Title        = newPost.Title,
                Body         = newPost.Body,
                Excerpt      = newPost.Excerpt,
                Slug         = _slugGenerator.CreateSlug(newPost.Title),
                LastModified = DateTimeOffset.Now,
            };

            if (publishPost)
            {
                post.PubDate  = DateTimeOffset.Now;
                post.IsPublic = true;
            }

            if (Request != null)
            {
                _dataStore.SaveFiles(Request.Form.Files.ToList());
            }

            _dataStore.SavePost(post);
        }
Beispiel #4
0
        public async Task <IActionResult> CreatePost(NewPostViewModel viewModel, int blogId)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var blogOwnerId = blogId;

            var isAuthorized = await _authorizationService.AuthorizeAsync(User, blogOwnerId, PostOperations.Create);

            if (isAuthorized.Succeeded)
            {
                var post = new Post
                {
                    Title   = viewModel.Title,
                    Content = viewModel.Content,
                    BlogId  = blogId
                };

                _postService.CreatePost(post);

                return(RedirectToAction("Index", "Blog"));
            }

            return(new UnauthorizedResult());
        }
Beispiel #5
0
        public async Task <IActionResult> Create(NewPostViewModel newPostViewModel)
        {
            #region CREATING A NEW POST
            var userId = _userManager.GetUserId(User);
            var user   = _userManager.FindByIdAsync(userId).Result;
            var post   = _postBLL.BuildPost(newPostViewModel, user);

            await _postService.Add(post);

            #endregion

            #region INCREASING THE TOTAL POST AMOUNT IN FORUM
            var forum = _forumService.GetById(newPostViewModel.ForumId);
            forum.AmountTotalPost += 1;
            #endregion

            #region INSERTING NEW FORUM AMOUNT
            bool userFirstPostByForum = _forumService.CheckUserFirstPostByForum(userId.ToString(), newPostViewModel.ForumId);

            //If it is the first time that the user is creating a post related with the forum, then increase one user of the forum bcz a new user has just used the forum for the first time.
            if (userFirstPostByForum == true)
            {
                var model = _forumBLL.GetForumUserNewAmount(user, forum);
                await _forumService.AddNewUser(model);
            }
            #endregion

            await _forumService.Update(forum);

            return(RedirectToAction("Index", "Post", new { id = post.Id }));
        }
Beispiel #6
0
        public ActionResult NewPost(NewPostViewModel npvm)
        {
            if (Session["ID"] != null)
            {
                var post = new Post()
                {
                    Caption        = npvm.Caption,
                    Time           = DateTime.Now,
                    Private_Public = npvm.Private_Public,
                    User_Id        = (int)Session["ID"]
                };
                if (npvm.Picture != null)
                {
                    post.Has_Picture = true;
                }
                else
                {
                    post.Has_Picture = false;
                }
                ActionResult Return = RegisterPost(post);
                if (npvm.Picture != null)
                {
                    string name = post.Time.ToString().Replace(':', '_').Replace('/', '_').Replace('-', '_');
                    string path = Path.Combine(Server.MapPath("~/images"), post.User_Id.ToString(), name + ".jpg");
                    npvm.Picture.SaveAs(path);
                }
                return(Return);
            }

            return(null);
        }
        public ActionResult New(NewPostViewModel vm)
        {
            if (ModelState.IsValid)
            {
                Post post = new Post
                {
                    CategoryId       = vm.CategoryId,
                    Title            = vm.Title,
                    Content          = vm.Content,
                    AuthorId         = User.Identity.GetUserId(),
                    Slug             = UrlService.URLFriendly(vm.Slug),
                    CreationTime     = DateTime.Now,
                    ModificationTime = DateTime.Now,
                    PhotoPath        = this.SaveImage(vm.FeaturedImage)
                };
                db.Posts.Add(post);
                db.SaveChanges();
                TempData["SuccessMessage"] = "Post has been created successfully.";

                return(RedirectToAction("Index"));
            }

            ViewBag.CategoryId = new SelectList(db.Categories.OrderBy(x => x.CategoryName).ToList(), "Id", "CategoryName");
            return(View());
        }
Beispiel #8
0
        public async Task <IActionResult> NewPost(NewPostViewModel model)
        {
            SetIsAuth();
            await postService.AddPost(Int32.Parse(Request.Cookies["user"]), model.Title, model.Preview, model.Text, model.Image);

            return(RedirectToAction("MyPage", "User"));
        }
        public ActionResult Save(FormViewModel formData)
        {
            if (formData == null)
            {
                return(RedirectToAction("NewPost"));
            }

            var model = new NewPostViewModel()
            {
                Categories = _unitOfWork.Categories.GetAll()
                             .Select(Mapper.Map <Category, CategoryDto>).ToList(),
                Post = formData.Post,
                Img  = formData.Img
            };

            if (!ModelState.IsValid)
            {
                return(View("PostForge", model));
            }

            formData.Post.Img = _imageManager.SaveImage(formData.Img,
                                                        _contextService.GetMapPath(_path));

            if (formData.Post.Img == null)
            {
                return(View("PostForge", model));
            }

            _unitOfWork.Posts.Add(Mapper.Map <PostDto, Post>(formData.Post));
            _unitOfWork.Complete();

            return(RedirectToAction("Index", "Post"));
        }
Beispiel #10
0
        public async Task <IActionResult> StartPost([FromBody] NewPostViewModel postViewModel)
        {
            var startPostCommand = new StartPostCommand(postViewModel.Author, postViewModel.Title);
            await _mediator.Publish(startPostCommand, CancellationToken.None);

            return(Ok());
        }
Beispiel #11
0
 public IActionResult AddPost(NewPostViewModel model)
 {
     if (ModelState.IsValid)
     {
         User user    = context.Users.Where(u => u.ID == model.UserID).FirstOrDefault();
         Blog newPost = new Blog
         {
             MedicineName        = model.MedicineName,
             Description         = model.Description,
             StreetNumberAndName = model.StreetNumberAndName,
             City     = model.City,
             State    = model.State,
             ZipCode  = model.ZipCode,
             PostTime = DateTime.Now,
             UserID   = model.UserID,
             User     = user
         };
         context.Blogs.Add(newPost);
         context.SaveChanges();
         return(Redirect($"/Users/ViewBlog?id={user.ID}"));
         //TempData["id"] = user.ID;
         //return RedirectToAction("/Users/ViewBlog");
     }
     return(View(model));
 }
Beispiel #12
0
        public IActionResult AddPost(string name)
        {
            NewPostViewModel newPost = new NewPostViewModel();
            User             newUser = context.Users.Single(x => x.Name == User.Identity.Name);

            newPost.UserID = newUser.ID;
            return(View(newPost));
        }
        public async Task Put(int postId, NewPostViewModel postModel)
        {
            var newPostData = new NewPostDTO {
                Body = postModel.Body
            };

            await postService.Update(newPostData, postId);
        }
 public NewPostView(ImageSource IS, MediaFile file)
 {
     viewModel = new NewPostViewModel(IS, file);
     viewModel.initData();
     InitializeComponent();
     viewModel.Navigation = this.Navigation;
     this.BindingContext  = viewModel;
 }
Beispiel #15
0
        public async Task <IActionResult> AddNewPost(NewPostViewModel model)
        {
            model.UserId = await _currentUserService.GetUserId();

            var postId = await _postService.CreatePost(model);

            return(RedirectToAction(nameof(Index), new { id = postId }));
        }
        public async Task Post(string userId, NewPostViewModel postModel)
        {
            var newPostData = new NewPostDTO {
                Body   = postModel.Body,
                UserId = userId
            };

            await postService.Create(newPostData);
        }
Beispiel #17
0
        public async Task <IActionResult> NewPost()
        {
            var model = new NewPostViewModel
            {
                Categories = await _categoryService.GetCategories()
            };

            return(View(model));
        }
        public ActionResult ThemMoi()
        {
            NewPostViewModel model = new NewPostViewModel
            {
                MaQH  = db.QuanHuyens.ToList(),
                MaTTP = db.TinhTPs.ToList(),
            };

            return(View(model));
        }
        public NewPostPage()
        {
            InitializeComponent();
            viewModel            = new NewPostViewModel();
            BindingContext       = viewModel;
            viewModel.Navigation = Navigation;

            LoadPetTypePicker();
            LoadPetSizePicker();
        }
        public async Task <IActionResult> Patch(long id, [FromBody] NewPostViewModel model)
        {
            if (ModelState.IsValid)
            {
                var post = this.unitOfWork.PostsRepository.GetById(id);
                if (post == null)
                {
                    return(NotFound());
                }
                if (post.UserId != User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value)
                {
                    return(Forbid());
                }
                else
                {
                    post.CategoryId = model.CategoryId;
                    post.Title      = model.Title;
                    post.Text       = model.Content;
                    foreach (var tag in model.Tags)
                    {
                        var wantedTag = this.unitOfWork.TagsRepository.GetByName(tag);
                        if (wantedTag == null)
                        {
                            wantedTag = new Tag {
                                Name = tag
                            };
                            this.unitOfWork.TagsRepository.Add(wantedTag);
                            this.unitOfWork.PostsRepository.AddPostTag(new PostTag
                            {
                                Tag  = wantedTag,
                                Post = post
                            });
                        }
                        else
                        {
                            if (!this.unitOfWork.PostsRepository.HasTag(post.PostId, wantedTag.TagId))
                            {
                                PostTag postTag = new PostTag {
                                    PostId = post.PostId, TagId = wantedTag.TagId
                                };
                                this.unitOfWork.PostsRepository.AddPostTag(postTag);
                            }
                        }
                    }
                }
                await this.unitOfWork.Save();

                return(NoContent());
            }
            else
            {
                return(BadRequest());
            }
        }
        public ViewResult NewPost()
        {
            var model = new NewPostViewModel()
            {
                Categories = _unitOfWork.Categories.GetAll()
                             .Select(Mapper.Map <Category, CategoryDto>).ToList(),
                Post = new PostDto()
            };

            return(View("PostForge", model));
        }
        public async Task <IActionResult> CreatetPost([FromBody] NewPostViewModel post)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var newPostRespond = await _postService.CreatePost(post);

            return(Ok(newPostRespond));
        }
Beispiel #23
0
        public async System.Threading.Tasks.Task <IActionResult> Add(NewPostViewModel data)
        {
            if (!ModelState.IsValid)
            {
                return(View(data));
            }
            var usr = HttpContext.User.Identity.Name;

            await _postListService.Add(usr, data.Title, data.Description, data.allowComment, data.Content, data.Tags, data.CategoryId);

            return(RedirectToAction("Index", "Home"));
        }
Beispiel #24
0
        public async Task <IActionResult> AddPost(NewPostViewModel model)
        {
            var userId = _userManager.GetUserId(User);
            var user   = _userManager.FindByIdAsync(userId).Result;
            var post   = BuildPost(model, user);

            await _postService.Add(post);

            await _userService.UpdateUserRating(userId, typeof(Post));

            return(RedirectToAction("Index", "Post", new { id = post.Id }));
        }
Beispiel #25
0
        public IActionResult Create(int id)
        {
            var forum = _forumService.GetById(id);

            var model = new NewPostViewModel
            {
                ForumName  = forum.Title,
                ForumId    = forum.Id,
                AuthorName = User.Identity.Name
            };

            return(View(model));
        }
Beispiel #26
0
        private Post BuildPost(NewPostViewModel model, ApplicationUser user)
        {
            var forum = forumService.GetById(model.ForumId);

            return(new Post
            {
                Title = model.Title,
                Content = model.Content,
                Created = DateTime.Now,
                User = user,
                Forum = forum
            });
        }
Beispiel #27
0
        public NewPostViewModel GetForumById(int id)
        {
            var forum = _forumService.GetById(id);

            var model = new NewPostViewModel
            {
                ForumId       = forum.Id,
                ForumTitle    = forum.Title,
                ForumImageUrl = forum.ImageUrl
            };

            return(model);
        }
Beispiel #28
0
        private Post BuildPost(NewPostViewModel model, ApplicationUser user)
        {
            var topic = _Context.Topics.Single(x => x.Id == model.TopicId);

            return(new Post
            {
                Title = model.Title,
                Content = model.Content,
                Created = DateTime.Now,
                User = user,
                Topic = topic
            });
        }
Beispiel #29
0
        public IActionResult Create(int id) //id is Forum.Id
        {
            var forum = _forumService.GetById(id);

            var model = new NewPostViewModel
            {
                ForumName     = forum.Title,
                ForumId       = forum.Id,
                ForumImageUrl = forum.ImageUrl,
                AuthorName    = User.Identity.Name //Get logged in user
            };

            return(View(model));
        }
Beispiel #30
0
        public IActionResult Create(int id)
        {
            var forum = forumService.GetById(id);

            var viemModel = new NewPostViewModel()
            {
                ForumId       = forum.Id,
                ForumName     = forum.Title,
                ForumImageUrl = forum.ImageURL,
                AuhtorName    = User.Identity.Name
            };

            return(View(viemModel));
        }