public ActionResult AddPost(AddPost addPostModel)
        {
            if (ModelState.IsValid)
            {
                Post post = null;
                User user = _blogRepository.ListUsers.Where(u => u.Id == idAuthorizationUser()).FirstOrDefault();
                BlogModel blog = _blogRepository.ListBlogs.Where(u => u.Id == addPostModel.idBlog).FirstOrDefault();
                post = _blogRepository.ListPosts.Where(u => u.Title == addPostModel.Title && u.Description == addPostModel.Description && u.User == user).FirstOrDefault();
                if (post == null)
                {
                    post = new Post { Title = addPostModel.Title, ShortDescription = addPostModel.ShortDescription, Description = addPostModel.Description, Blog = blog, User = user, PostedOn = DateTime.Now };
                    _blogRepository.AddPost(post);
                    post = _blogRepository.ListPosts.Where(u => u.Title == addPostModel.Title && u.Description == addPostModel.Description && u.User == user).FirstOrDefault();
                    if (post != null)
                    {
                        return RedirectToAction("SuccessAddedPost", "Account");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Такой пост уже существует");
                }
            }

            return View(addPostModel);
        }
Exemple #2
0
        public int? SavePost(SavePostDto postDto)
        {
            return UnitOfWork.Do(uow =>
                {
                    if (postDto.Id == 0)
                    {
                        var post = new Post()
                        {
                            Title = postDto.Title,
                            Text = postDto.Text,
                            Created = DateTime.Now,
                            Author = uow.Repo<User>().GetById(postDto.AuthodId)
                        };

                        var found = uow.Repo<Post>().AsQueryable().FirstOrDefault(t => t.Title == postDto.Title);
                        if (found == null)
                        {
                            uow.Repo<Post>().Insert(post);
                            return post.Id;
                        }
                    }
                    else
                    {
                        var found = uow.Repo<Post>().GetById(postDto.Id);
                        if (found != null)
                        {
                            found.Title = postDto.Title;
                            found.Text = postDto.Text;
                            found.Author = uow.Repo<User>().GetById(postDto.AuthodId);
                            uow.Repo<Post>().Update(found);
                            return found.Id;
                        }
                    }
                    return (int?)null;
                });
        }