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); }
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; }); }