public ArticlePublishResponse Publish(User publisher, Article article) { DataWriteResult result = _articleRepository.Create(publisher, article); ArticlePublishResponse response = result.Success ? ResponseBase.SuccessResponse() : ResponseBase.FailureResponse(); return response; }
public ArticlePublishResponse LikeArticle(User user, Article article) { DataWriteResult result = _articleRepository.Like(user, article); ArticlePublishResponse response = result.Success ? ResponseBase.SuccessResponse() : ResponseBase.FailureResponse(); return response; }
public DataWriteResult Delete(User publisher, Article article) { try { User dbPublisher = _context.Users.First(u => u.Id == publisher.Id && u.Role == Role.Publisher); Article dbArticle = _context.Articles.FirstOrDefault(a => a.Id == article.Id); _context.Articles.Remove(dbArticle); _context.SaveChanges(); return DataWriteResult.SuccessResult(); } catch (Exception exception) { return DataWriteResult.FailureResult(exception); } }
public DataWriteResult Create(User publisher, Article article) { try { User dbPublisher = _context.Users.First(u => u.Id == publisher.Id && u.Role == Role.Publisher); article.Publisher = dbPublisher; _context.Articles.Add(article); _context.SaveChanges(); return DataWriteResult.SuccessResult(); } catch (Exception exception) { return DataWriteResult.FailureResult(exception); } }
public DataWriteResult Like(User user, Article article) { DataWriteResult response; if (user.Likes > 0) { article.Likes += 1; user.Likes -= 1; response = DataWriteResult.SuccessResult(); } else { response = DataWriteResult.FailureResult(new Exception("Insufficient likes remaining")); } return response; }
public DataWriteResult Create(User publisher, Article article) { DataWriteResult response; if (article.Author == null) { response = DataWriteResult.FailureResult(new Exception("Authour null")); } else { _articles.Add(article); response = DataWriteResult.SuccessResult(); } _articles.Add(article); return response; }
public DataWriteResult Like(User user, Article article) { try { if (user.Likes > 0) { var articleDb = _context.Articles.Include(a => a.Author).Include(p => p.Publisher).First(a => a.Id == article.Id); var userDb = _context.Users.First(u => u.Id == user.Id); articleDb.Likes += 1; userDb.Likes -= 1; _context.SaveChanges(); return DataWriteResult.SuccessResult(); } return DataWriteResult.FailureResult(new Exception("Insufficient likes remaining")); } catch (Exception exception) { return DataWriteResult.FailureResult(exception); } }
public void Initilise() { _author = new Author { Id = 1, Name = "Fake Author 1" }; _publisher = new User { Id = 1, Username = "******", Name = "Fake Publisher 1", Password = "******", Role = Role.Publisher }; _employee = new User { Id = 1, Username = "******", Name = "Fake Employee 1", Password = "******", Role = Role.Employee, Likes = 10 }; var articles = new List<Article> { new Article { Id = 1, Title = "News Article 1", Author = _author, Body = "This is a sample body for News Article 1", ArticleType = ArticleType.News, PublishDate = DateTime.Now, Likes = 2}, new Article { Id = 2, Title = "News Article 2", Author = _author, Body = "This is a sample body for News Article 2", ArticleType = ArticleType.News, PublishDate = DateTime.Now , Likes = 48}, new Article { Id = 3, Title = "Technology Article 1", Author = _author, Body = "This is a sample body for Technology Article 1", ArticleType = ArticleType.Technology, PublishDate = DateTime.Now , Likes = 0} }; IArticleRepository articleRepository = new FakeArticleRepository(articles, new List<Author>() { _author }); _articleManager = new ArticleManager(articleRepository); }
public DataWriteResult Update(User publisher, Article article) { throw new NotImplementedException(); }
public static AuthenticationResponse SuccessfulLogin(User user) { return new AuthenticationResponse { Success = true, ResponseType = LoginResponseType.Success, LoggedInUser = user }; }
public void Initilise() { _context = new NewsPortalContext(); _articleRepository = new ArticleRepository(_context); publisher = _context.Users.First(u => u.Role == Role.Publisher); }