public IHttpActionResult Getxxgc(int id) //这边传的是UserId { List <QuestionsAll> Qlists = new List <QuestionsAll>(); var user = db.Users.Where(x => x.id == id).FirstOrDefault(); List <Question> ques = null; if (user.Role == "S") { var sAssign = db.StudentAssgins.Where(x => x.StudentId == user.PersonId); List <int> projectIdlist = new List <int>(); projectIdlist = (from s in sAssign select s.ProjectId).ToList(); var linq1 = from qu in db.Questions join Courses in db.Courses on qu.CourseId equals Courses.id join Projects in db.Projects on Courses.ProjectId equals Projects.id //where Projects.id.Equals(sAssign.ProjectId) where projectIdlist.Contains(Projects.id) where Courses.ActiveFlag.Equals("Y") where qu.Status.Contains("O") where qu.QuestionType.Contains("Q") select qu; ques = linq1.OrderByDescending(c => c.CourseId).ThenBy(c => c.QuestionNum).ToList(); } if (user.Role == "M") { var linq2 = from qu in db.Questions join Courses in db.Courses on qu.CourseId equals Courses.id where Courses.TeacherId == user.PersonId where Courses.ActiveFlag.Equals("Y") where qu.Status.Contains("O") where qu.QuestionType.Contains("Q") select qu; ques = linq2.OrderByDescending(c => c.CourseId).ThenBy(c => c.QuestionNum).ToList(); } if (ques.Count == 0) { Qlists = null; return(Ok(Qlists)); //没有发布的问题 } foreach (Question q in ques) { QuestionsAll questionitem = new QuestionsAll(); questionitem.CourseId = q.CourseId; var course = db.Courses.Where(x => x.id == q.CourseId).FirstOrDefault(); questionitem.CourseName = course.CourseName; questionitem.QuestionId = q.id; questionitem.QuestionContent = q.QuestionDesc; questionitem.ReleaseTime = q.LastUpdateDate.ToString("f"); var answerList = from Notes in db.Notes where Notes.PublicFlag == "Y" && Notes.QuestionId == q.id select Notes; if (answerList.ToList().Count == 0) { questionitem.IsAnswered = false; //该问题暂无回答 questionitem.Answers = null; } else { questionitem.IsAnswered = true; } List <Answers> Alists = new List <Answers>(); foreach (Note a in answerList.ToList()) { Answers answeritem = new Answers(); answeritem.AnswerId = a.id; answeritem.Answer = a.Notes; answeritem.AnswerTime = a.CreationDate.ToString("f"); Collection col = db.Collections.FirstOrDefault(p => p.NoteId == a.id && p.UserId == id); //当前登陆者的userid !!! if (col != null) { answeritem.IsCollected = true; } else { answeritem.IsCollected = false; } Like like = db.Likes.FirstOrDefault(p => p.NoteId == a.id && p.UserId == id); //当前登陆者的userid !!! if (like != null) { answeritem.IsLiked = true; } else { answeritem.IsLiked = false; } answeritem.LikeCount = db.Likes.Where(p => p.NoteId == a.id).ToList().Count; answeritem.UserId = a.UserId; var user1 = db.Users.Where(x => x.id == a.UserId).FirstOrDefault(); if (user1.Role == "S") { var stu = db.Students.Where(x => x.id == user1.PersonId).FirstOrDefault(); answeritem.HeadImg = stu.HeadImage; answeritem.name = stu.StudentName; } if (user1.Role == "M") { var man = db.Managers.Where(x => x.id == user1.PersonId).FirstOrDefault(); answeritem.HeadImg = man.HeadImage; answeritem.name = man.ManagerName; } var commentList = from Comments in db.Comments where Comments.PublicFlag == "Y" && Comments.NoteId == a.id select Comments; if (commentList.ToList().Count == 0) { answeritem.IsCommented = false; //该回答暂无评论 answeritem.Comments = null; } else { answeritem.IsCommented = true; } List <AnswerComments> Clists = new List <AnswerComments>(); foreach (Comment c in commentList.ToList()) { AnswerComments commentitem = new AnswerComments(); commentitem.CommentId = c.id; commentitem.Comment = c.Comments; commentitem.CommentTime = c.CreationDate.ToString("f"); Collection col2 = db.Collections.FirstOrDefault(p => p.CommentId == c.id && p.UserId == id); //当前登陆者的userid !!! if (col2 != null) { commentitem.IsCollected = true; } else { commentitem.IsCollected = false; } Like like2 = db.Likes.FirstOrDefault(p => p.CommentId == c.id && p.UserId == id); //当前登陆者的userid !!! if (like2 != null) { commentitem.IsLiked = true; } else { commentitem.IsLiked = false; } commentitem.LikeCount = db.Likes.Where(p => p.CommentId == c.id).ToList().Count; commentitem.UserId = c.CommentedBy; var user2 = db.Users.Where(x => x.id == c.CommentedBy).FirstOrDefault(); if (user2.Role == "S") { var stu = db.Students.Where(x => x.id == user2.PersonId).FirstOrDefault(); commentitem.HeadImg = stu.HeadImage; commentitem.name = stu.StudentName; } if (user2.Role == "M") { var man = db.Managers.Where(x => x.id == user2.PersonId).FirstOrDefault(); commentitem.HeadImg = man.HeadImage; commentitem.name = man.ManagerName; } Clists.Add(commentitem); } answeritem.Comments = Clists; Alists.Add(answeritem); } questionitem.Answers = Alists; Qlists.Add(questionitem); } return(Ok(Qlists)); }
public IHttpActionResult GetMyCoursesAll(int id) //这边传的是UserId { List <CoursesAll> CoursesAllLists = new List <CoursesAll>(); var user = db.Users.Where(x => x.id == id).FirstOrDefault(); List <Course> courseList = null; if (user.Role == "S") { var sAssign = db.StudentAssgins.Where(x => x.StudentId == user.PersonId); List <int> projectIdlist = new List <int>(); projectIdlist = (from s in sAssign select s.ProjectId).ToList(); var linq1 = (from cou in db.Courses where projectIdlist.Contains(cou.ProjectId) where cou.ActiveFlag.Contains("Y") select cou).ToList(); courseList = linq1; } if (user.Role == "M") { var linq2 = (from cou in db.Courses where cou.TeacherId == user.PersonId where cou.ActiveFlag.Contains("Y") select cou).ToList(); courseList = linq2; } if (courseList.Count == 0) { CoursesAllLists = null; return(Ok(CoursesAllLists)); //没有课程 } foreach (Course cou in courseList) { CoursesAll courseitem = new CoursesAll(); courseitem.CourseId = cou.id; courseitem.CourseName = cou.CourseName; var noticeList = from notices in db.Questions where notices.QuestionType == "N" && notices.Status.Contains("O") where notices.CourseId == cou.id select notices; if (noticeList.ToList().Count == 0) { courseitem.HasNotice = false; courseitem.Notices = null; //该课程下没有通知 } else { courseitem.HasNotice = true; List <Notice> Nlists = new List <Notice>(); foreach (Question n in noticeList.ToList()) { Notice noticeitem = new Notice(); noticeitem.NoticeId = n.id; noticeitem.NoticeContent = n.QuestionDesc; noticeitem.ReleaseTime = n.LastUpdateDate.ToString("f"); Nlists.Add(noticeitem); } courseitem.Notices = Nlists; } var questionList = from Questions in db.Questions where Questions.QuestionType == "Q" && Questions.Status.Contains("O") && Questions.CourseId == cou.id select Questions; List <Question> ques = questionList.OrderByDescending(c => c.CourseId).ThenBy(c => c.QuestionNum).ToList(); if (ques.Count == 0) { courseitem.HasQuestion = false; //该课程下没有问题 courseitem.QuestionsAll = null; } else { courseitem.HasQuestion = true; } List <QuestionsAll> QAlists = new List <QuestionsAll>(); foreach (Question q in ques) { QuestionsAll questionitem = new QuestionsAll(); questionitem.QuestionId = q.id; questionitem.QuestionContent = q.QuestionDesc; questionitem.ReleaseTime = q.LastUpdateDate.ToString("f"); var answerList = from Notes in db.Notes where Notes.UserId == id && Notes.QuestionId == q.id //当前登录用户的所有回答 id需要改成系统获取!!! select Notes; if (answerList.ToList().Count == 0) { questionitem.IsAnswered = false; //该问题该用户暂未回答 questionitem.Answers = null; } else { questionitem.IsAnswered = true; } List <Answers> Alists = new List <Answers>(); foreach (Note a in answerList.ToList()) { Answers answeritem = new Answers(); answeritem.AnswerId = a.id; answeritem.Answer = a.Notes; answeritem.PublicFlag = a.PublicFlag; answeritem.AnswerTime = a.CreationDate.ToString("f"); answeritem.UserId = a.UserId; var user1 = db.Users.Where(x => x.id == a.UserId).FirstOrDefault(); if (user1.Role == "S") { var stu = db.Students.Where(x => x.id == user.PersonId).FirstOrDefault(); answeritem.HeadImg = stu.HeadImage; answeritem.name = stu.StudentName; } if (user1.Role == "M") { var man = db.Managers.Where(x => x.id == user.PersonId).FirstOrDefault(); answeritem.HeadImg = man.HeadImage; answeritem.name = man.ManagerName; } var commentList = from Comments in db.Comments where Comments.PublicFlag == "Y" && Comments.NoteId == a.id select Comments; if (commentList.ToList().Count == 0) { answeritem.IsCommented = false; //该回答暂无评论 answeritem.Comments = null; } else { answeritem.IsCommented = true; } List <AnswerComments> Clists = new List <AnswerComments>(); foreach (Comment c in commentList.ToList()) { AnswerComments commentitem = new AnswerComments(); commentitem.CommentId = c.id; commentitem.Comment = c.Comments; commentitem.CommentTime = c.CreationDate.ToString("f"); commentitem.UserId = c.CommentedBy; var user2 = db.Users.Where(x => x.id == c.CommentedBy).FirstOrDefault(); if (user2.Role == "S") { var stu = db.Students.Where(x => x.id == user2.PersonId).FirstOrDefault(); commentitem.HeadImg = stu.HeadImage; commentitem.name = stu.StudentName; } if (user2.Role == "M") { var man = db.Managers.Where(x => x.id == user2.PersonId).FirstOrDefault(); commentitem.HeadImg = man.HeadImage; commentitem.name = man.ManagerName; } Clists.Add(commentitem); } answeritem.Comments = Clists; Alists.Add(answeritem); } questionitem.Answers = Alists; QAlists.Add(questionitem); } courseitem.QuestionsAll = QAlists; CoursesAllLists.Add(courseitem); } return(Ok(CoursesAllLists)); }