Example #1
0
        //通过用户获取grade或者job_title
        private static bool getGradeOrTitle(NBackendContext ctx, User user, ref int grade, ref string job_title)
        {
            //根据用户的类型去分发逻辑
            if (user.role.Equals(STUDENT))
            {
                var q = ctx.Students.Where(_stu => _stu.StudentId == user.Id);
                if (!q.Any())
                {
                    return(false);
                }
                var stu = q.Single();
                grade = stu.grade;
            }
            else
            {
                var q = ctx.Teachers.Where(_tea => _tea.TeacherId == user.Id);
                if (!q.Any())
                {
                    return(false);
                }
                var tea = q.Single();
                job_title = tea.job_title;
            }

            return(true);
        }
Example #2
0
        private static object ListToObj(NBackendContext ctx, List <User> _users)
        {
            var users = new List <object>();

            foreach (var user in _users)
            {
                int    grade     = -1;
                string job_title = "";

                if (!getGradeOrTitle(ctx, user, ref grade, ref job_title))
                {
                    return(JsonConverter.Error(400, "用户信息有误"));
                }

                users.Add(new
                {
                    role         = user.role,
                    user_id      = user.Id,
                    user_name    = user.user_name,
                    department   = user.department,
                    phone_number = user.phone_number,
                    email        = user.mail,
                    avatar       = user.avatar,
                    grade        = grade,
                    job_title    = job_title,
                });
            }
            var data = new
            {
                users = users,
            };

            return(JsonConverter.BuildResult(data, 200, "ok"));
        }
Example #3
0
        public static object deleteFollow(string token, object json)
        {
            try
            {
                Dictionary <string, string> body = JsonConverter.Decode(json);
                NBackendContext             ctx  = new NBackendContext();

                int  following_id = int.Parse(body["user_id"]);
                int  user_id      = Helper.JwtManager.DecodeToken(token);
                User user         = getUserById(ctx, user_id);
                User following    = getUserById(ctx, following_id);

                if (!containsUser(user.following.ToList(), following))
                {
                    return(Helper.JsonConverter.Error(400, "你并没有follow"));
                }
                if (!containsUser(following.followers.ToList(), user))
                {
                    return(Helper.JsonConverter.Error(400, "follow信息有误"));//表不一致
                }
                user.following.Remove(following);
                following.followers.Remove(user);

                ctx.SaveChanges();
                return(Helper.JsonConverter.BuildResult(null));
            }
            catch (Exception e)
            {
                return(Helper.JsonConverter.Error(400, "取消关注失败"));
            }
        }
Example #4
0
        //获取班级的所有广播
        private static List <object> getBroadcastsOfClass(string token, object json)
        {
            try
            {
                int user_id = JwtManager.DecodeToken(token);
                //做验证

                var    body      = JsonConverter.Decode(json);
                int    sec_id    = int.Parse(body["sec_id"]);
                int    course_id = int.Parse(body["course_id"]);
                int    year      = int.Parse(body["year"]);
                string semester  = body["semester"];

                NBackendContext ctx = new NBackendContext();

                var class_bros = _getBroadcastsOfClass(ctx, sec_id, course_id, year, semester);

                if (class_bros == null)
                {
                    return(new List <object>());
                }
                return(ListToObj(class_bros));
            }
            catch (Exception e)
            {
                return(null);
            }
        }
Example #5
0
 //获取某个班级的开课时间段
 public static object get_time_info(int sec_id, int course_id, string semester, int year)
 {
     using (var context = new NBackendContext())
     {
         var time_info = (from section in context.Sections
                          join multiSectionTime in context.MultiSectionTimes on new { section.SecId, section.courseId, section.semester, section.year }
                          equals new { multiSectionTime.SecId, multiSectionTime.courseId, multiSectionTime.semester, multiSectionTime.year }
                          join sectionTime in context.SectionTimes on multiSectionTime.section_timeId equals sectionTime.SectionTimeId
                          where section.SecId == sec_id && section.courseId == course_id && section.semester == semester && section.year == year
                          select new
         {
             year = section.year,
             semester = section.semester,
             course_id = section.courseId,
             sec_id = section.SecId,
             day = multiSectionTime.day,
             single_or_double = multiSectionTime.single_or_double,
             start_section = sectionTime.start_section,
             length = sectionTime.length
         });
         var list = new List <object>();
         foreach (var each_time_info in time_info)
         {
             list.Add(new
             {
                 day = each_time_info.day,
                 single_or_double = each_time_info.single_or_double,
                 start_section    = each_time_info.start_section,
                 length           = each_time_info.length
             });
         }
         return(list);
     }
 }
Example #6
0
        //删除广播
        public static object deleteBroadcast(string token, object json)
        {
            try
            {
                var body         = JsonConverter.Decode(json);
                int broadcast_id = int.Parse(body["broadcast_id"]);
                int user_id      = JwtManager.DecodeToken(token);

                NBackendContext ctx = new NBackendContext();

                var q  = ctx.TeacherBroadcasts.Where(tb => tb.broadcastId == broadcast_id && tb.teacherId == user_id);
                var q1 = ctx.Broadcasts.Where(bro => bro.BroadcastId == broadcast_id);

                if (!q.Any())
                {
                    return(JsonConverter.Error(400, "该广播不存在或者你没有创建过该广播"));
                }
                var _tb       = q.Single();
                var broadcast = q1.Single();
                ctx.TeacherBroadcasts.Remove(_tb);
                ctx.Broadcasts.Remove(broadcast);

                ctx.SaveChanges();
                return(JsonConverter.BuildResult(null));
            }
            catch (Exception e)
            {
                return(JsonConverter.Error(400, e.Message));
            }
        }
Example #7
0
 public static void safeSaveChanges(NBackendContext ctx)
 {
     try
     {
         ctx.SaveChanges();
     }
     catch (System.Data.Entity.Validation.DbEntityValidationException e)
     {
         foreach (var eve in e.EntityValidationErrors)
         {
             Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                               eve.Entry.Entity.GetType().Name, eve.Entry.State);
             foreach (var ve in eve.ValidationErrors)
             {
                 Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                   ve.PropertyName, ve.ErrorMessage);
             }
         }
         throw;
     }
     catch (Exception e)
     {
         throw;
     }
 }
Example #8
0
        public static object getTwis(string token)
        {
            NBackendContext ctx     = new NBackendContext();
            int             user_id = JwtManager.DecodeToken(token);

            return(ListToObj(ctx, getAllTwis(ctx, user_id)));
        }
Example #9
0
        //教师允许学生加入班级
        public static object PermitApplication(object json)
        {
            var body       = Helper.JsonConverter.Decode(json);
            var sec_id     = int.Parse(body["sec_id"]);
            var course_id  = int.Parse(body["course_id"]);
            var semester   = body["semester"];
            var year       = int.Parse(body["year"]);
            var student_id = int.Parse(body["user_id"]);
            var status     = int.Parse(body["status"]);

            using (var context = new NBackendContext())
            {
                var a_student = context.Takes.Where(a => a.StudentId == student_id && a.secId == sec_id && a.courseId == course_id &&
                                                    a.year == year && a.semester == semester);

                if (!a_student.Any())
                {
                    return(Helper.JsonConverter.Error(401, "学生在出席记录中不存在"));
                }
                else
                {
                    if (status == 1)
                    {
                        a_student.Single().validate_status = true;
                    }
                    else
                    {
                        context.Takes.Remove(a_student.Single());
                    }
                    context.SaveChanges();
                    return(Helper.JsonConverter.BuildResult(null));
                }
            }
        }
Example #10
0
        //获取开设的所有课程id
        public static object GetCourses()
        {
            try
            {
                using (var context = new NBackendContext())
                {
                    var some_courses = context.Courses;
                    var list         = new List <object>();

                    foreach (var each_course in some_courses)
                    {
                        list.Add(new
                        {
                            course_id   = each_course.CourseId,
                            course_name = each_course.course_name
                        });
                    }

                    var data = new
                    {
                        courses = list
                    };

                    return(Helper.JsonConverter.BuildResult(data));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
Example #11
0
        //创建一个队伍
        public static object PostTeam(object json, string token)
        {
            try
            {
                var body      = Helper.JsonConverter.Decode(json);
                var sec_id    = int.Parse(body["sec_id"]);
                var course_id = int.Parse(body["course_id"]);
                var semester  = body["semester"];
                var year      = int.Parse(body["year"]);
                var team_name = body["team_name"];
                var user_id   = Helper.JwtManager.DecodeToken(token);

                using (var context = new NBackendContext())
                {
                    var any_section = context.Sections.Where(a => a.SecId == sec_id && a.courseId == course_id &&
                                                             a.semester == semester && a.year == year);
                    if (!any_section.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "不存在这个班"));
                    }

                    var new_team = new Team
                    {
                        secId     = sec_id,
                        courseId  = course_id,
                        semester  = semester,
                        year      = year,
                        team_name = team_name,
                    };
                    context.Teams.Add(new_team);

                    try
                    {
                        context.SaveChanges();
                    }
                    catch (Exception e)
                    {
                        System.Console.Write(e.Message);
                        return(Helper.JsonConverter.Error(410, "向team表中加入数据时发生错误"));
                    }

                    context.TeamStudents.Add(new TeamStudent
                    {
                        teamId    = new_team.TeamId,
                        studentId = user_id
                    });
                    context.SaveChanges();
                    var data = new
                    {
                        team_id = new_team.TeamId
                    };
                    return(Helper.JsonConverter.BuildResult(data));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
Example #12
0
        public static object getUsersByNameOrId(object json)
        {
            var body = JsonConverter.Decode(json);

            var             list = new List <object>();
            NBackendContext ctx  = new NBackendContext();

            if (body.ContainsKey("user_id"))
            {
                int id = int.Parse(body["user_id"]);

                var user = getUserById(ctx, id);
                if (user == null)
                {
                    return(JsonConverter.Error(400, "火星用户!"));
                }

                int    grade     = -1;
                string job_title = "";

                if (!getGradeOrTitle(ctx, user, ref grade, ref job_title))
                {
                    return(JsonConverter.Error(400, "用户信息有误"));
                }

                var data = new
                {
                    role         = user.role,
                    user_id      = user.Id,
                    user_name    = user.user_name,
                    department   = user.department,
                    phone_number = user.phone_number,
                    email        = user.mail,
                    avatar       = user.avatar,
                    job_title    = job_title,
                    grade        = grade,
                    following    = user.following.Count(),
                    follower     = user.followers.Count(),
                };

                return(JsonConverter.BuildResult(data, 200, "ok"));
            }
            else if (body.ContainsKey("user_name") && !body["user_name"].Equals(""))
            {
                string name = body["user_name"];
                var    q    = ctx.Users.Where(_user => _user.user_name == name);


                var _users = q.ToList();

                return(ListToObj(ctx, _users));
            }
            else
            {
                //无字段,暂时返回所有用户?
                var data = ListToObj(ctx.Users.ToList());
            }

            return(list);
        }
Example #13
0
        //教师查看待审核的学生
        public static object GetWaitingStudents(object json)
        {
            try
            {
                var body      = Helper.JsonConverter.Decode(json);
                var sec_id    = int.Parse(body["sec_id"]);
                var course_id = int.Parse(body["course_id"]);
                var semester  = body["semester"];
                var year      = int.Parse(body["year"]);

                using (var context = new NBackendContext())
                {
                    var waiting_students = context.Takes.Where(a => a.secId == sec_id && a.courseId == course_id &&
                                                               a.semester == semester && a.year == year && a.validate_status == false);

                    var students_info = (from student in waiting_students
                                         join info in context.Users on student.StudentId equals info.Id
                                         select new { student_id = student.StudentId, user_name = info.user_name, avatar = info.avatar }).ToArray();

                    var data = new
                    {
                        students_info
                    };
                    return(Helper.JsonConverter.BuildResult(data));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
Example #14
0
        private static List <Broadcast> _getGlobalBroadcasts(NBackendContext ctx)
        {
            var q    = ctx.Broadcasts.Where(bro => bro.scope == SCOPE_GOLBAL);
            var bros = q.ToList();

            return(bros);
        }
Example #15
0
        public static object DeleteCourseware(object json)
        {
            try
            {
                var body          = Helper.JsonConverter.Decode(json);
                var courseware_id = int.Parse(body["courseware_id"]);

                using (var context = new NBackendContext())
                {
                    var any_courseware = context.CourseWares.Where(a => a.CourseWareId == courseware_id);
                    if (!any_courseware.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "这个课件有问题"));
                    }
                    var the_courseware = any_courseware.Single();
                    context.CourseWares.Remove(the_courseware);
                    context.SaveChanges();
                    return(Helper.JsonConverter.BuildResult(null));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
Example #16
0
        //获取某个课程的所有题目
        public static object getQuestionsOfCourse(string token, object json)
        {
            try
            {
                int user_id   = JwtManager.DecodeToken(token);
                var body      = Helper.JsonConverter.Decode(json);
                int course_id = int.Parse(body["course_id"]);

                NBackendContext ctx       = new NBackendContext();
                var             q         = ctx.Questions.Where(qu => qu.courseId == course_id);
                List <Question> questions = q.ToList();

                List <object> data = new List <object>();

                foreach (Question qu in questions)
                {
                    data.Add(new
                    {
                        question_id = qu.QuestionId,
                        course_id   = qu.courseId,
                        chapter     = qu.chapter,
                        content     = qu.content,
                        answer      = qu.answer,
                        options     = qu.options,
                    });
                }

                return(Helper.JsonConverter.BuildResult(data));
            }
            catch (Exception e)
            {
                return(Helper.JsonConverter.Error(400, "信息填写有误?"));
            }
        }
Example #17
0
        public static object GetAttendanceSummary(object json, string token)
        {
            try
            {
                var body     = Helper.JsonConverter.Decode(json);
                var semester = body["semester"];
                var year     = int.Parse(body["year"]);
                var user_id  = Helper.JwtManager.DecodeToken(token);

                using (var context = new NBackendContext())
                {
                    var total_records = context.Attentions.Where(a => a.StudentId == user_id && a.semester == semester && a.year == year);
                    var total_absent  = total_records.Where(a => a.status == 2 || a.status == 3);

                    var data = new
                    {
                        total_attendance = total_records.Count(),
                        total_absent     = total_absent.Count()
                    };

                    return(Helper.JsonConverter.BuildResult(data));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
Example #18
0
        //根据学生id获取其队伍列表
        public static object GetItsTeams(object json)
        {
            try
            {
                var body       = Helper.JsonConverter.Decode(json);
                var student_id = int.Parse(body["user_id"]);

                using (var context = new NBackendContext())
                {
                    var any_student = context.Users.Where(a => a.Id == student_id);
                    if (!any_student.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "这个人有问题"));
                    }

                    var teams = context.TeamStudents.Where(a => a.studentId == student_id);
                    var list  = new List <object>();

                    foreach (var each_team in teams)
                    {
                        var team_members = context.TeamStudents.Where(a => a.teamId == each_team.teamId);
                        var member_list  = new List <object>();
                        var team_info    = context.Teams.Single(a => a.TeamId == each_team.teamId);
                        var course_info  = context.Courses.Single(a => a.CourseId == team_info.courseId);
                        foreach (var team_member in team_members)
                        {
                            member_list.Add(new
                            {
                                student_id   = team_member.studentId,
                                student_name = context.Users.Single(a => a.Id == team_member.studentId).user_name
                            });
                        }
                        list.Add(new
                        {
                            year        = team_info.year,
                            semester    = team_info.semester,
                            sec_id      = team_info.secId,
                            course_id   = team_info.courseId,
                            course_name = course_info.course_name,
                            team_id     = each_team.teamId,
                            team_name   = team_info.team_name,
                            students    = JsonConvert.SerializeObject(member_list)
                        });
                    }

                    var data = new
                    {
                        teams = list
                    };

                    return(Helper.JsonConverter.BuildResult(data));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
Example #19
0
        public static object getTwis(object json)
        {
            NBackendContext             ctx  = new NBackendContext();
            Dictionary <string, string> body = JsonConverter.Decode(json);
            int user_id = int.Parse(body["user_id"]);

            return(ListToObj(ctx, getSelfTwis(ctx, user_id)));
        }
Example #20
0
        //
        public static List <object> getAllBroadcasts(string token)
        {
            NBackendContext ctx = new NBackendContext();

            var bros = _getAllExamsOfAllClass(ctx, token);

            return(ListToObj(bros));
        }
Example #21
0
        //学生提交试卷
        public static object finishExam(string token, object json)
        {
            int user_id = JwtManager.DecodeToken(token);

            NBackendContext ctx  = new NBackendContext();
            User            user = UserBiz.getUserById(ctx, user_id);

            //var body = Helper.JsonConverter.Decode(json);


            try
            {
                var body      = JsonConvert.DeserializeObject <Dictionary <string, object> >(json.ToString());
                var exam_id   = (int)(long)body["exam_id"];
                var questions = (JArray)body["questions"];

                //var _body = JsonConvert.DeserializeObject<List<object>>(questions);

                List <object> ques_ans = new List <object>();

                int total_score = 0;
                foreach (var qu in questions)
                {
                    IDictionary <string, JToken> rates = (JObject)qu;
                    // Explicit typing just for "proof" here
                    Dictionary <string, object> __body =
                        rates.ToDictionary(pair => pair.Key,
                                           pair => (object)pair.Value);

                    int question_id = ((JValue)__body["question_id"]).Value <int>();

                    string answer = ((JValue)__body["answer"]).Value <string>();

                    Question question = getQuestionById(ctx, question_id);
                    if (question.answer.Equals(answer))
                    {
                        int single_score = getScoreById(ctx, question_id, exam_id);
                        total_score += single_score;
                    }
                }

                ctx.TakesExams.Add(new TakesExam
                {
                    StudentId = user_id,
                    ExamId    = (int)exam_id,
                    score     = total_score
                });
                ctx.SaveChanges();

                return(Helper.JsonConverter.BuildResult(null));
            }
            catch (Exception e)
            {
                //throw e;
                return(Helper.JsonConverter.Error(400, "提交失败"));
            }
        }
Example #22
0
        public static object GetOneDiscussion(object json)
        {
            try
            {
                var body          = Helper.JsonConverter.Decode(json);
                var discussion_id = int.Parse(body["discussion_id"]);

                using (var context = new NBackendContext())
                {
                    var a_discussion = context.Discussions.Where(a => a.DisscussionId == discussion_id);
                    if (!a_discussion.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "这个讨论不存在"));
                    }
                    var the_discussion = a_discussion.Single();
                    var replys         = the_discussion.comments.ToList();
                    var list           = new List <object>();

                    if (the_discussion.is_comment != true)
                    {
                        foreach (var each_reply in replys)
                        {
                            list.Add(new
                            {
                                discussion_id = each_reply.DisscussionId,
                                user_id       = each_reply.userId,
                                user_name     = context.Users.Single(a => a.Id == each_reply.userId).user_name,
                                role          = context.Users.Single(a => a.Id == each_reply.userId).role,
                                content       = each_reply.content,
                                time          = each_reply.time,
                                avatar        = context.Users.Single(a => a.Id == each_reply.userId).avatar,
                                question_id   = the_discussion.DisscussionId
                            });
                        }
                    }

                    var data = new
                    {
                        discussion_id = the_discussion.DisscussionId,
                        user_id       = the_discussion.userId,
                        user_name     = context.Users.Single(a => a.Id == the_discussion.userId).user_name,
                        role          = context.Users.Single(a => a.Id == the_discussion.userId).role,
                        avatar        = context.Users.Single(a => a.Id == the_discussion.userId).avatar,
                        content       = the_discussion.content,
                        time          = the_discussion.time,
                        replys        = list
                    };

                    return(Helper.JsonConverter.BuildResult(data));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
Example #23
0
        public static object postTwi(string token, object json)
        {
            Dictionary <string, string> body = JsonConverter.Decode(json);
            NBackendContext             ctx  = new NBackendContext();
            int user_id = JwtManager.DecodeToken(token);

            //var user_id = int.Parse(body["user_id"]);
            if (UserBiz.getUserById(ctx, user_id) == null)
            {
                return(Helper.JsonConverter.Error(400, "你这个人是谁哦"));
            }

            var content = body["content"];
            var time    = body["time"];
            var image   = body["image"];

            Twitter twi = new Twitter
            {
                //TwitterId = 1,
                userId  = user_id,
                content = content,
                time    = time,
                image   = image
            };


            ctx.Twitters.Add(twi);
            try
            {
                ctx.SaveChanges();
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }

            var data = new
            {
                twitter_id = twi.TwitterId,
                user_id    = twi.userId,
                image      = twi.image,
                time       = twi.time,
                content    = twi.content,
            };

            return(JsonConverter.BuildResult(data));
        }
Example #24
0
        //获取广播的具体信息
        public static object getBroastInfo(string token, object json)
        {
            try
            {
                var body         = JsonConverter.Decode(json);
                int broadcast_id = int.Parse(body["broadcast_id"]);

                NBackendContext ctx = new NBackendContext();
                var             q   = ctx.Broadcasts.Where(bro => bro.BroadcastId == broadcast_id);

                if (!q.Any())
                {
                    return(JsonConverter.Error(400, "该广播不存在!"));
                }

                var broadcast = q.Single();

                object data;
                if (broadcast.scope == SCOPE_CLASS)
                {
                    data = new
                    {
                        broadcast_id,
                        broadcast.content,
                        broadcast.type,
                        broadcast.scope,
                        sec_id    = broadcast.secId,
                        course_id = broadcast.courseId,
                        broadcast.semester,
                        broadcast.year,
                        broadcast.start_time,
                        broadcast.end_time,
                        broadcast.publish_time,
                    };
                }
                else
                {
                    data = new
                    {
                        broadcast_id,
                        broadcast.content,
                        broadcast.type,
                        broadcast.scope,

                        broadcast.start_time,
                        broadcast.end_time,
                        broadcast.publish_time,
                    };
                }

                return(JsonConverter.BuildResult(data));
            }
            catch (Exception e)
            {
                return(JsonConverter.Error(400, "请检查输入字段格式或者值"));
            }
        }
Example #25
0
        private static Question getQuestionById(NBackendContext ctx, int question_id)
        {
            var q = ctx.Questions.Where(qu => qu.QuestionId == question_id);

            if (!q.Any())
            {
                return(null);
            }
            return(q.Single());
        }
Example #26
0
        private static Exam getExamById(NBackendContext ctx, int exam_id)
        {
            var q = ctx.Exams.Where(exam => exam.ExamId == exam_id);

            if (!q.Any())
            {
                return(null);
            }
            return(q.Single());
        }
Example #27
0
        public static object GetDiscussions(object json)
        {
            try
            {
                var body      = Helper.JsonConverter.Decode(json);
                var sec_id    = int.Parse(body["sec_id"]);
                var course_id = int.Parse(body["course_id"]);
                var semester  = body["semester"];
                var year      = int.Parse(body["year"]);

                using (var context = new NBackendContext())
                {
                    var a_class = context.Sections.Where(a => a.SecId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year);
                    if (!a_class.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "不存在这个班级"));
                    }

                    var discussions = context.Discussions.Where(a => a.courseId == course_id && a.secId == sec_id &&
                                                                a.semester == semester && a.year == year && a.is_comment == false);
                    var list = new List <object>();

                    if (discussions.Any())
                    {
                        foreach (var a_discussion in discussions)
                        {
                            var user_info = context.Users.Single(a => a.Id == a_discussion.userId);

                            list.Add(new
                            {
                                discussion_id = a_discussion.DisscussionId,
                                user_id       = user_info.Id,
                                user_name     = user_info.user_name,
                                role          = user_info.role,
                                content       = a_discussion.content,
                                time          = a_discussion.time,
                                avatar        = user_info.avatar
                                                //question_id = a_discussion.Discussion_DisscussionId
                            });
                        }
                    }
                    var data = new
                    {
                        questions = list
                    };
                    return(Helper.JsonConverter.BuildResult(data));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "输入字段格式可能存在问题,或者数据库中可能存在不一致现象,请检查"));
            }
        }
Example #28
0
        //在section表中找到某条记录
        public static Section getSection(NBackendContext ctx, int sec_id, int course_id, int year, string semester)
        {
            var q = ctx.Sections.Where(sec => sec.SecId == sec_id && sec.courseId == course_id &&
                                       sec.year == year && sec.semester == semester
                                       );

            if (!q.Any())
            {
                return(null);
            }
            return(q.Single());
        }
Example #29
0
        public static object Login(object json)
        {
            try
            {
                var body = JsonConverter.Decode(json);

                var user_id  = int.Parse(body["user_id"]);
                var password = body["password"];

                NBackendContext ctx = new NBackendContext();

                var q = ctx.Users.Where(_user => _user.Id == user_id);
                if (!q.Any())
                {
                    return(JsonConverter.Error(400, "用户id不正确"));
                }
                //
                User user = q.Single();

                //待修改
                string encoded_password = UserHelper.Encrypt(user_id, password);
                if (!user.password.Equals(password) && !user.password.Equals(encoded_password))
                {
                    return(JsonConverter.Error(400, "密码错误"));
                }

                int following_num = user.following.Count();
                int followers_num = user.followers.Count();

                var token = Helper.JwtManager.GenerateToken(user_id);

                var data = new
                {
                    user_id      = user_id,
                    user_name    = user.user_name,
                    department   = user.department,
                    phone_number = user.phone_number,
                    email        = user.mail,
                    avatar       = user.avatar,
                    role         = user.role,
                    token        = token,
                    following    = following_num,
                    follower     = followers_num,
                };

                return(JsonConverter.BuildResult(data, 200, "ok"));
            }
            catch
            {
                return(Helper.JsonConverter.Error(400, "登陆失败,请确认您的密码或者id"));
            }
        }
Example #30
0
        private static int getScoreById(NBackendContext ctx, int question_id, int exam_id)
        {
            var q = ctx.ExamQuestions.Where(eq => eq.questionId == question_id && eq.examId == exam_id);

            if (!q.Any())
            {
                return(-1);
            }
            else
            {
                return(q.Single().score);
            }
        }