public JsonResult Like(int id, string value) { bool success = false; Like like = new Like(); Article article = new Article(); ArticleRepository articleRepository = new ArticleRepository(); LikeRepository likeRepository = new LikeRepository(); article = articleRepository.GetById(id); List <Like> likeList = new List <Like>(); string type = AuthenticationManager.LoggedUser.GetType().BaseType.ToString(); int start = type.LastIndexOf(".") + 1; int positions = type.Length - start; type = type.Substring(start, positions); if (value == "Like") { like.ArticleID = id; like.UserID = AuthenticationManager.LoggedUser.Id; like.UserType = type; likeRepository.Save(like); success = true; } if (value == "UnLike") { like = likeRepository.GetAll(filter: l => l.ArticleID == id && l.UserID == AuthenticationManager.LoggedUser.Id && l.UserType == type).FirstOrDefault(); likeRepository.Delete(like); success = true; } return(Json(success, JsonRequestBehavior.AllowGet)); }
public void DeletePost(int id) { List <Like> likes = likeRepo.GetAll().Where <Like>(x => x.postId == id).ToList(); List <Comment> comments = comRepo.GetAll().Where <Comment>(x => x.PostId == id).ToList(); foreach (var item in comments) { comRepo.Delete(item.CommentId); } foreach (var item in likes) { likeRepo.Delete(item.likeId); } this.Delete(id); }
public ActionResult Index() { var curUser = GetCurrentUser(); var results = ORRepository.GetByUser(curUser); // var likes = LikeRepository.GetLikes(curUser.Id).Select(it => it.ResultId); var likes = LikeRepository.GetAll() // получаем все лайки .Where(u => u.User.Id == curUser.Id) // фильтруем по текущему юзеру .Select(it => it.Result.Id); // достаем из лайков результаты операций foreach (var result in results) { result.IsLiked = likes.Contains(result.Id); } return(View(results)); }
public JsonResult Like(long id) { var result = ORRepository.Get(id); if (result == null) { return(Json(new { Success = false, Error = "Не удалось найти результат" })); } var curUser = GetCurrentUser(); //var like = LikeRepository.GetLikes(curUser.Id) // .FirstOrDefault(it => it.UserId == curUser.Id && it.ResultId == id); var like = LikeRepository.GetAll().FirstOrDefault(it => it.User.Id == curUser.Id && it.Result.Id == id); if (like != null) { //Dislike LikeRepository.Delete(like); return(Json(new { Success = true, Name = "Like" })); } // Создать лайк like = LikeRepository.Create(); // Заполнить свойства like.User = curUser; like.Result = result; // Сохранить LikeRepository.Update(like); // Вернуться к списку операций return(Json(new { Success = true, Name = "Dislike" })); }
public ActionResult Articles() { if (AuthenticationManager.LoggedUser == null) { return(RedirectToAction("Login", "Default")); } List <Article> articleList = new List <Article>(); ArticleRepository articleRepository = new ArticleRepository(); Dictionary <int, List <Comment> > comments = new Dictionary <int, List <Comment> >(); CommentRepository commentRepository = new CommentRepository(); Dictionary <int, string> userDictionary = new Dictionary <int, string>(); List <int> subjectId = new List <int>(); Teacher teacher = new Teacher(); TeacherRepository teacherRepository = new TeacherRepository(); Student student = new Student(); StudentRepository studentRepository = new StudentRepository(); List <Article> list = new List <Article>(); if (AuthenticationManager.LoggedUser.GetType().BaseType.Equals(typeof(Teacher))) { teacher = teacherRepository.GetById(AuthenticationManager.LoggedUser.Id); foreach (var item in teacher.CourseSubject) { subjectId.Add(item.Subject.Id); } } else if (AuthenticationManager.LoggedUser.GetType().BaseType.Equals(typeof(Student))) { student = studentRepository.GetById(AuthenticationManager.LoggedUser.Id); List <CourseSubject> courseSubjectList = new List <CourseSubject>(); CourseSubjectRepository courseSubjectRepository = new CourseSubjectRepository(); courseSubjectList = courseSubjectRepository.GetAll(filter: cs => cs.CourseID == student.CourseID); foreach (var item in courseSubjectList) { subjectId.Add(item.Subject.Id); } } subjectId = subjectId.Distinct().ToList(); foreach (var item in subjectId) { List <Article> article = articleRepository.GetAll(filter: s => s.Subject.Id == item); if (article != null) { articleList.AddRange(article); } } articleList = articleList.OrderBy(d => d.DateCreated.TimeOfDay).ToList(); articleList.Reverse(); ArticleControllerArticlesVM model = new ArticleControllerArticlesVM(); LikeRepository likeRepository = new LikeRepository(); Dictionary <Article, int> ArticlesAndLikeCount = new Dictionary <Article, int>(); Dictionary <int, bool> Liked = new Dictionary <int, bool>(); int articleId = 0; string type = AuthenticationManager.LoggedUser.GetType().BaseType.ToString(); int start = type.LastIndexOf(".") + 1; int positions = type.Length - start; type = type.Substring(start, positions); foreach (var item in articleList) { List <Comment> commentedCommentList = new List <Comment>(); commentedCommentList = commentRepository.GetAll(filter: c => c.Article.Id == item.Id); commentedCommentList.OrderBy(c => c.DateCreated.TimeOfDay).ToList(); commentedCommentList.Reverse(); foreach (var comment in commentedCommentList) { string userName = ""; if (comment.UserType == "Teacher") { teacher = teacherRepository.GetById(comment.UserID); if (teacher != null) { userName = teacher.FirstName + " " + teacher.LastName; userDictionary.Add(comment.Id, userName); } } else { student = studentRepository.GetById(comment.UserID); userName = student.FirstName + " " + student.LastName; userDictionary.Add(comment.Id, userName); } } comments.Add(item.Id, commentedCommentList); int count = likeRepository.GetAll(filter: a => a.ArticleID == item.Id).Count; ArticlesAndLikeCount.Add(item, count); List <Like> likes = new List <Like>(); likes = likeRepository.GetAll(l => l.ArticleID == item.Id); foreach (var like in likes.Where(l => l.UserID == AuthenticationManager.LoggedUser.Id && l.UserType == type)) { Liked.Add(item.Id, true); } model.ArticleId = item.Id; if (Liked.Count != ArticlesAndLikeCount.Count) { foreach (var dictionary in ArticlesAndLikeCount.Where(a => a.Key.Id == item.Id)) { articleId = item.Id; } Liked.Add(articleId, false); } } model.UserType = type; model.IsLiked = Liked; model.UserID = AuthenticationManager.LoggedUser.Id; model.Articles = ArticlesAndLikeCount; model.CommentList = comments; model.UserDictionary = userDictionary; return(View(model)); }
public async Task <ActionResult <IEnumerable <Like> > > GetLikes() { return(await likeRepository.GetAll().ToListAsync()); }
public IHttpActionResult GetLike(int id) { return(Ok(likeRepo.GetAll().Where <Like>(x => x.postId == id).ToList().Count)); }
public JsonResult Like(int id, string value) { bool success = false; Like like = new Like(); Article article = new Article(); ArticleRepository articleRepository = new ArticleRepository(); LikeRepository likeRepository = new LikeRepository(); article = articleRepository.GetById(id); List<Like> likeList = new List<Like>(); string type = AuthenticationManager.LoggedUser.GetType().BaseType.ToString(); int start = type.LastIndexOf(".") + 1; int positions = type.Length - start; type = type.Substring(start, positions); if (value == "Like") { like.ArticleID = id; like.UserID = AuthenticationManager.LoggedUser.Id; like.UserType = type; likeRepository.Save(like); success = true; } if (value == "UnLike") { like = likeRepository.GetAll(filter: l => l.ArticleID == id && l.UserID == AuthenticationManager.LoggedUser.Id && l.UserType == type).FirstOrDefault(); likeRepository.Delete(like); success = true; } return Json(success, JsonRequestBehavior.AllowGet); }
public ActionResult Articles() { if (AuthenticationManager.LoggedUser == null) { return RedirectToAction("Login", "Default"); } List<Article> articleList = new List<Article>(); ArticleRepository articleRepository = new ArticleRepository(); Dictionary<int, List<Comment>> comments = new Dictionary<int, List<Comment>>(); CommentRepository commentRepository = new CommentRepository(); Dictionary<int, string> userDictionary = new Dictionary<int, string>(); List<int> subjectId = new List<int>(); Teacher teacher = new Teacher(); TeacherRepository teacherRepository = new TeacherRepository(); Student student = new Student(); StudentRepository studentRepository = new StudentRepository(); List<Article> list = new List<Article>(); if (AuthenticationManager.LoggedUser.GetType().BaseType.Equals(typeof(Teacher))) { teacher = teacherRepository.GetById(AuthenticationManager.LoggedUser.Id); foreach (var item in teacher.CourseSubject) { subjectId.Add(item.Subject.Id); } } else if (AuthenticationManager.LoggedUser.GetType().BaseType.Equals(typeof(Student))) { student = studentRepository.GetById(AuthenticationManager.LoggedUser.Id); List<CourseSubject> courseSubjectList = new List<CourseSubject>(); CourseSubjectRepository courseSubjectRepository = new CourseSubjectRepository(); courseSubjectList = courseSubjectRepository.GetAll(filter: cs => cs.CourseID == student.CourseID); foreach (var item in courseSubjectList) { subjectId.Add(item.Subject.Id); } } subjectId = subjectId.Distinct().ToList(); foreach (var item in subjectId) { List<Article> article = articleRepository.GetAll(filter: s => s.Subject.Id == item); if (article != null) { articleList.AddRange(article); } } articleList = articleList.OrderBy(d => d.DateCreated.TimeOfDay).ToList(); articleList.Reverse(); ArticleControllerArticlesVM model = new ArticleControllerArticlesVM(); LikeRepository likeRepository = new LikeRepository(); Dictionary<Article, int> ArticlesAndLikeCount = new Dictionary<Article, int>(); Dictionary<int, bool> Liked = new Dictionary<int, bool>(); int articleId = 0; string type = AuthenticationManager.LoggedUser.GetType().BaseType.ToString(); int start = type.LastIndexOf(".") + 1; int positions = type.Length - start; type = type.Substring(start, positions); foreach (var item in articleList) { List<Comment> commentedCommentList = new List<Comment>(); commentedCommentList = commentRepository.GetAll(filter: c => c.Article.Id == item.Id); commentedCommentList.OrderBy(c => c.DateCreated.TimeOfDay).ToList(); commentedCommentList.Reverse(); foreach (var comment in commentedCommentList) { string userName = ""; if (comment.UserType == "Teacher") { teacher = teacherRepository.GetById(comment.UserID); if (teacher != null) { userName = teacher.FirstName + " " + teacher.LastName; userDictionary.Add(comment.Id, userName); } } else { student = studentRepository.GetById(comment.UserID); userName = student.FirstName + " " + student.LastName; userDictionary.Add(comment.Id, userName); } } comments.Add(item.Id, commentedCommentList); int count = likeRepository.GetAll(filter: a => a.ArticleID == item.Id).Count; ArticlesAndLikeCount.Add(item, count); List<Like> likes = new List<Like>(); likes = likeRepository.GetAll(l => l.ArticleID == item.Id); foreach (var like in likes.Where(l => l.UserID == AuthenticationManager.LoggedUser.Id && l.UserType == type)) { Liked.Add(item.Id, true); } model.ArticleId = item.Id; if (Liked.Count != ArticlesAndLikeCount.Count) { foreach (var dictionary in ArticlesAndLikeCount.Where(a => a.Key.Id == item.Id)) { articleId = item.Id; } Liked.Add(articleId, false); } } model.UserType = type; model.IsLiked = Liked; model.UserID = AuthenticationManager.LoggedUser.Id; model.Articles = ArticlesAndLikeCount; model.CommentList = comments; model.UserDictionary = userDictionary; return View(model); }