コード例 #1
0
 public ActionResult EditArticle(ArticleControllerArticlesVM model)
 {
     TryUpdateModel(model);
     if (model.SubjectID < 1 || !ModelState.IsValid)
     {
         model.ArticleId = 0;
         List <CourseSubject> courseSubject  = new List <CourseSubject>();
         Teacher           teacher           = new Teacher();
         TeacherRepository teacherRepository = new TeacherRepository();
         teacher       = teacherRepository.GetById(AuthenticationManager.LoggedUser.Id);
         courseSubject = teacher.CourseSubject.ToList();
         List <SelectListItem> listSubjects = new List <SelectListItem>();
         listSubjects.Add(new SelectListItem()
         {
             Text = "Select subject", Value = ""
         });
         foreach (var item in courseSubject)
         {
             if (item.Subject.Id != model.ArticleId)
             {
                 listSubjects.Add(new SelectListItem()
                 {
                     Text = item.Subject.Name, Value = item.Subject.Id.ToString()
                 });
             }
         }
         model.SubjectsListItems = listSubjects;
     }
     if (ModelState.IsValid)
     {
         Article           article           = new Article();
         ArticleRepository articleRepository = new ArticleRepository();
         Subject           subject           = new Subject();
         SubjectRepository subjectRepository = new SubjectRepository();
         Teacher           teacher           = new Teacher();
         TeacherRepository teacherRepository = new TeacherRepository();
         teacher = teacherRepository.GetById(AuthenticationManager.LoggedUser.Id);
         if (model.ArticleId > 0)
         {
             article              = articleRepository.GetById(model.ArticleId);
             article.Content      = model.Content;
             article.DateCreated  = model.DateCreated;
             article.DateModified = DateTime.Now;
             article.SubjectID    = model.SubjectID;
             article.TeacherID    = teacher.Id;
             article.Title        = model.Title;
         }
         else
         {
             article.Content     = model.Content;
             article.DateCreated = DateTime.Now;
             article.SubjectID   = model.SubjectID;
             article.TeacherID   = teacher.Id;
             article.Title       = model.Title;
         }
         articleRepository.Save(article);
         return(RedirectToAction("Articles"));
     }
     return(View(model));
 }
コード例 #2
0
        public ActionResult EditArticle(int id)
        {
            if (AuthenticationManager.LoggedUser.GetType().BaseType.Equals(typeof(Teacher)))
            {
                ArticleControllerArticlesVM model             = new ArticleControllerArticlesVM();
                TeacherRepository           teacherRepository = new TeacherRepository();
                Article               article           = new Article();
                ArticleRepository     articleRepository = new ArticleRepository();
                List <Subject>        subjectList       = new List <Subject>();
                SubjectRepository     subjectRepository = new SubjectRepository();
                Teacher               teacher           = new Teacher();
                List <SelectListItem> listSubjects      = new List <SelectListItem>();
                teacher = teacherRepository.GetById(AuthenticationManager.LoggedUser.Id);
                List <int> subjectId = new List <int>();
                foreach (var item in teacher.CourseSubject)
                {
                    subjectId.Add(item.Subject.Id);
                }
                subjectId = subjectId.Distinct().ToList();
                foreach (var item in subjectId)
                {
                    subjectList.Add(subjectRepository.GetById(item));
                }

                if (id > 0)
                {
                    article            = articleRepository.GetById(id);
                    model.ArticleId    = article.Id;
                    model.TeacherID    = teacher.Id;
                    model.Title        = article.Title;
                    model.Content      = article.Content;
                    model.DateCreated  = article.DateCreated;
                    model.DateModified = article.DateModified;
                    model.Subject      = article.Subject;
                    model.Teacher      = teacher;
                    listSubjects.Add(new SelectListItem()
                    {
                        Text = article.Subject.Name, Value = article.Subject.Id.ToString(), Selected = true
                    });
                }
                if (id == 0)
                {
                    model.ArticleId = 0;
                    listSubjects.Add(new SelectListItem()
                    {
                        Text = "Select subject", Value = ""
                    });
                }
                foreach (var item in subjectList)
                {
                    if (item.Id != model.ArticleId)
                    {
                        listSubjects.Add(new SelectListItem()
                        {
                            Text = item.Name, Value = item.Id.ToString()
                        });
                    }
                }
                model.SubjectsListItems = listSubjects;
                return(View(model));
            }
            return(RedirectToAction("Articles"));
        }
コード例 #3
0
        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));
        }