public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { var article = await _articleContext.Articles.FindAsync(request.Id); var user = await _articleContext.Users.SingleOrDefaultAsync(x => x.UserName == _contextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.Name)); var like = await _articleContext.UserArticles.SingleOrDefaultAsync(x => x.ArticleId == article.Id && x.UserId == user.Id); if (like != null) { throw new Exception("beğendin"); } like = new UserArticle { User = user, Article = article, isHost = false }; _articleContext.UserArticles.Add(like); var success = await _articleContext.SaveChangesAsync() > 0; if (success) { return(Unit.Value); } throw new Exception("--"); }
public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { var article = await _context.Articles.FindAsync(request.Id); if (article == null) { throw new RestException(HttpStatusCode.NotFound, new { Article = "Article introuvable" }); } var user = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _userAccessor.GetCurrentUsername()); var attendance = await _context.UserArticles.SingleOrDefaultAsync(x => x.ArticleId == article.Id && x.AppUserId == user.Id); if (attendance == null) { throw new RestException(HttpStatusCode.BadRequest, new { Attendance = "déjà associé(e) à cet article" }); } attendance = new UserArticle { Article = article, AppUser = user, IsHost = false, DateJoined = DateTime.Now }; var success = await _context.SaveChangesAsync() > 0; if (success) { return(Unit.Value); } throw new Exception("Erreur survenue pendant la sauvegarde des données"); }
public async Task AddArticlesAsync(int userId, int tagId, List <ArticleDto> allArticles) { foreach (ArticleDto article in allArticles) { Article articleToAdd = _mapper.Map <Article>(article); if (!string.IsNullOrEmpty(articleToAdd.Snippet)) { int articleAddedId = await _articleAccessor.AddArticlesToArticlesTableAsync(articleToAdd); if (articleAddedId != 0) { UserArticle userArticle = new UserArticle() { UserId = userId, ArticleId = articleAddedId, CreatedDate = DateTime.Now, IsLiked = false, IsSaved = false, IsMarkedRead = false, }; await _articleAccessor.AddArticlesToUserTableAsync(userArticle, tagId, userId); } } } }
//Method to create the Article public void CreateArticle(UserArticle article) { if (article == null) { throw new ArgumentNullException(nameof(article)); } _context.UserArticles.Add(article); }
public LeaderBoardColumnCard( RankData column, User user, UserArticle userArticle, int index = 0, GestureTapCallback onPress = null, Key key = null ) : base(key: key) { this.column = column; this.user = user; this.userArticle = userArticle; this.index = index; this.onPress = onPress; }
public async Task AddArticlesToUserTableAsync(UserArticle userArticle, int tagId, int userId) { var context = new KnowledgeHubDataBaseContext(); //context.ChangeTracker.AutoDetectChangesEnabled = false; try { userArticle.TagId = context.UserTag.FirstOrDefault(t => t.UserId == userId && t.TagId == tagId).Id; context.UserArticle.Add(userArticle); await context.SaveChangesAsync(); } catch (Exception ex) { return; } }
public async Task <bool> UpdateUserArticle(UserArticleDto userArticleDto) { UserArticle userArticle = this.knowledgeHubDataBaseContext.UserArticle.FirstOrDefault(p => p.Id == userArticleDto.Id); if (userArticle != null) { userArticle.IsSaved = userArticleDto.IsSaved; userArticle.IsMarkedRead = userArticleDto.IsMarkedRead; userArticle.IsLiked = userArticleDto.IsLiked; if (userArticleDto.IsLiked) { this.knowledgeHubDataBaseContext.Article.FirstOrDefault(p => p.Id == userArticleDto.ArticleId).Likes++; } return(await this.knowledgeHubDataBaseContext.SaveChangesAsync() != 0); } return(false); }
public override async Task <GetPrivateUserModel> Handle(SaveArticleToUserCommand request, CancellationToken cancellationToken) { var userId = _currentUserService.UserId; var user = await UnitOfWork.Users.GetEntityAsync(userId); if (user == null) { throw new UnauthorizedException(); } var article = await UnitOfWork.Articles.GetEntityAsync(request.ArticleId); if (article == null) { throw new NotFoundException(); } bool alreadySaved = article.UsersSaved.Where(us => us.UserId == user.Id).Count() > 0; // Remove if already saved. if (alreadySaved) { var joinEntity = article.UsersSaved.FirstOrDefault(us => us.UserId == user.Id); article.UsersSaved.Remove(joinEntity); user.SavedArticles.Remove(joinEntity); UnitOfWork.SaveChanges(); return(Mapper.Map <GetPrivateUserModel>(user)); } // Add relationship. var userArticle = new UserArticle { Article = article, User = user }; user.SavedArticles.Add(userArticle); article.UsersSaved.Add(userArticle); UnitOfWork.SaveChanges(); return(Mapper.Map <GetPrivateUserModel>(user)); }
public ActionResult ShowDetail(int id) { Article article = db.Articles.Where(x => x.Id == id).SingleOrDefault(); ShowDetailViewModel model = new ShowDetailViewModel(); model.Id = article.Id; model.CreatedOn = article.CreatedOn; model.Description = article.Description; model.DislikedCount = article.DislikedCount; model.HashTags = article.HashTags; model.LikedCount = article.LikedCount; model.OwnUser = article.OwnUser; model.PublishedOn = article.PublishedOn; model.Summary = article.Summary; model.Title = article.Title; if (Session["user_session"] != null) { User user = Session["user_session"] as User; if (user != null) { UserArticle userArticle = db.UserArticles.Where(x => x.Article.Id == article.Id && x.User.Id == user.Id).SingleOrDefault(); if (userArticle == null) { // Kullanıcı bu yazı ile ilgili bir işlem yapmamıştır. model.IsLiked = null; } else { // Eğer kullanıcı bu yazı ile ilgili bir işlem yapmış ise(like or dislike) model.IsLiked = userArticle.IsLiked; } } } return(View(model)); }
public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { foreach (var item in request.File) { if (item.Length > 0) { using (var stream = new MemoryStream()) { await item.CopyToAsync(stream); request.Article.ArticleImage = stream.ToArray(); } } } request.Article.Date = DateTime.Now.ToString(); _articleContext.Articles.Add(request.Article); var user = await _articleContext.Users.SingleOrDefaultAsync(x => x.UserName == _contextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.Name)); var like = new UserArticle { User = user, Article = request.Article, isHost = true }; _articleContext.UserArticles.Add(like); var success = await _articleContext.SaveChangesAsync() > 0; if (success) { return(Unit.Value); } throw new Exception("eklenemedi"); }
public async Task <IActionResult> WriteArticle(UserArticle article) { string loggedInUserId = _userManager.GetUserId(User); article.UserId = loggedInUserId; if (article.ArticleId > 0) { UpdateArticle(article); } else { CreateArticle(article); } if (await SaveChanges()) { return(RedirectToAction("AllArticles")); } else { return(View(article)); } }
public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { var article = new Article { Id = request.Id, Title = request.Title, Description = request.Description, Category = request.Category, Content = request.Content, Date = request.Date, Image = request.Image }; _context.Articles.Add(article); var user = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _userAccessor.GetCurrentUsername()); var attendee = new UserArticle { AppUser = user, Article = article, IsHost = true, DateJoined = DateTime.Now }; _context.UserArticles.Add(attendee); var success = await _context.SaveChangesAsync() > 0; if (success) { return(Unit.Value); } throw new Exception("Erreur survenue pendant la création de l'article"); }
public void AddUserArticle(UserArticle userArticle) { GetUserArticles().Add(userArticle); }
//Method to update the Article public void UpdateArticle(UserArticle article) { _context.UserArticles.Update(article); }
// /Article/Like/5?current=false // /Article/Like?nid=5¤t=false public JsonResult Like(int id, bool current) { MyJsonResult <int, int> result = new MyJsonResult <int, int>(); if (Session["user_session"] != null) { User user = Session["user_session"] as User; // Kullanıcı giriş yapmış demektir.. UserArticle user_article = db.UserArticles.Where(x => x.Article.Id == id && x.User.Id == user.Id).FirstOrDefault(); if (user_article != null) { // adam bu makaleye dokunmuş.. if (current == true) { // Like edilmiş bir article 'ı like ederek nötr olmak istiyor demektir. // UserArticle verisi silinir ve like count azaltılır. db.UserArticles.Remove(user_article); if (db.SaveChanges() > 0) { Article article = db.Articles.Where(x => x.Id == id).FirstOrDefault(); article.LikedCount -= 1; db.SaveChanges(); result.Value1 = article.LikedCount; result.Value2 = article.DislikedCount; return(Json(result, JsonRequestBehavior.AllowGet)); } } else { // Article disliked'dır. Article like'lanır. // Article like ve dlike count'lar ayarlanır. user_article.IsLiked = true; if (db.SaveChanges() > 0) { Article article = db.Articles.Where(x => x.Id == id).FirstOrDefault(); article.LikedCount += 1; article.DislikedCount -= 1; result.Value1 = article.LikedCount; result.Value2 = article.DislikedCount; return(Json(result, JsonRequestBehavior.AllowGet)); } } } else { // Makaleye bu adam ilk defa dokunuyor. user_article = new UserArticle(); user_article.Article = db.Articles.Where(x => x.Id == id).FirstOrDefault(); if (user_article.Article == null) { result.HasError = true; result.Error = "Makale bulunamadı ya da silinmiş."; return(Json(result, JsonRequestBehavior.AllowGet)); } user_article.User = db.Users.Where(x => x.Id == user.Id).SingleOrDefault(); user_article.IsLiked = true; db.UserArticles.Add(user_article); // insert ettik. İlk defa like'ladı. if (db.SaveChanges() > 0) { user_article.Article.LikedCount += 1; db.SaveChanges(); result.Value1 = user_article.Article.LikedCount; result.Value2 = user_article.Article.DislikedCount; return(Json(result, JsonRequestBehavior.AllowGet)); } } } else { // Giriş yapmadan like olmaz... result.HasError = true; result.Error = "Like için giriş yapmalısınız."; } return(Json(result, JsonRequestBehavior.AllowGet)); }