コード例 #1
0
ファイル: TeamBiz.cs プロジェクト: enochii/Backend
        //创建一个队伍
        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, "数据库中可能存在不一致现象,请检查"));
            }
        }
コード例 #2
0
ファイル: BroadcastBiz.cs プロジェクト: enochii/Backend
        //删除广播
        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));
            }
        }
コード例 #3
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, "数据库中可能存在不一致现象,请检查"));
            }
        }
コード例 #4
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, "取消关注失败"));
            }
        }
コード例 #5
0
ファイル: ClassBiz.cs プロジェクト: enochii/Backend
        //教师允许学生加入班级
        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));
                }
            }
        }
コード例 #6
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;
     }
 }
コード例 #7
0
ファイル: TwitterBiz.cs プロジェクト: enochii/Backend
        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));
        }
コード例 #8
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, "提交失败"));
            }
        }
コード例 #9
0
ファイル: ClassBiz.cs プロジェクト: enochii/Backend
        //学生申请加入班级
        public static object JoinClass(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 student_id = Helper.JwtManager.DecodeToken(token);

                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, "该班级不存在"));
                    }
                    else
                    {
                        var the_class = a_class.Single();
                        var a_student = context.Students.Where(a => a.StudentId == student_id);
                        if (!a_student.Any())
                        {
                            return(Helper.JsonConverter.Error(400, "不存在这个学生"));
                        }

                        var the_student = a_student.Single();
                        context.Takes.Add(new Take
                        {
                            StudentId       = the_student.StudentId,
                            secId           = the_class.SecId,
                            courseId        = the_class.courseId,
                            semester        = the_class.semester,
                            year            = the_class.year,
                            validate_status = false
                        });

                        context.SaveChanges();

                        return(Helper.JsonConverter.BuildResult(null));
                    }
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
コード例 #10
0
        //生成某个班级某次课的出席记录表
        public static object PostAttendance(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"]);
                var time_id   = int.Parse(body["time_id"]);

                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 any_records = context.Attentions.Where(a => a.secId == sec_id && a.courseId == course_id &&
                                                               a.semester == semester && a.year == year && a.timeId == time_id);
                    if (any_records.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "已经生成过这次课的出席记录辽"));
                    }

                    var students = context.Takes.Where(a => a.secId == sec_id && a.courseId == course_id &&
                                                       a.semester == semester && a.year == year);
                    foreach (var a_student in students)
                    {
                        context.Attentions.Add(new Attention
                        {
                            StudentId = a_student.StudentId,
                            secId     = sec_id,
                            courseId  = course_id,
                            semester  = semester,
                            year      = year,
                            timeId    = time_id,
                            status    = 2
                        });
                    }
                    context.SaveChanges();
                    return(Helper.JsonConverter.BuildResult(null));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
コード例 #11
0
        public static object PostCourseware(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"]);
                var name      = body["name"];
                var location  = body["location"];

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

                    var new_courseware = new CourseWare
                    {
                        secId    = sec_id,
                        courseId = course_id,
                        semester = semester,
                        year     = year,
                        name     = name,
                        location = location
                    };
                    context.CourseWares.Add(new_courseware);
                    context.SaveChanges();

                    return(Helper.JsonConverter.BuildResult(new
                    {
                        courseware_id = new_courseware.CourseWareId
                    }));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "输入字符串可能存在格式错误,或者数据库中可能存在不一致现象,请检查"));
            }
        }
コード例 #12
0
        //编辑某次出席记录
        public static object EditAttendanceRecords(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"]);
                var student_id = int.Parse(body["user_id"]);
                var time_id    = int.Parse(body["time_id"]);
                var status     = int.Parse(body["status"]);

                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 records = context.Attentions.Where(a => a.secId == sec_id && a.courseId == course_id &&
                                                           a.semester == semester && a.year == year && a.StudentId == student_id && a.timeId == time_id);
                    if (!records.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "这个班这次课没有出席表啊"));
                    }
                    foreach (var a_record in records)
                    {
                        a_record.status = status;
                    }
                    context.SaveChanges();
                    return(Helper.JsonConverter.BuildResult(null));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
コード例 #13
0
        public static object postFollow(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 (user == null || following == null)
                {
                    return(Helper.JsonConverter.Error(400, "用户信息有误"));
                }

                if (user.Id == following.Id)
                {
                    return(Helper.JsonConverter.Error(400, "请不要follow自己"));
                }

                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.Add(following);
                following.followers.Add(user);

                ctx.SaveChanges();
                return(Helper.JsonConverter.BuildResult(null));
            }
            catch (Exception e)
            {
                return(Helper.JsonConverter.Error(400, "关注失败"));
            }
        }
コード例 #14
0
ファイル: TwitterBiz.cs プロジェクト: enochii/Backend
        public static object deleteTwi(string token, object json)
        {
            int user_id = JwtManager.DecodeToken(token);
            var body    = JsonConverter.Decode(json);
            int twi_id  = int.Parse(body["twitter_id"]);

            NBackendContext ctx = new NBackendContext();
            var             q   = ctx.Twitters.Where(twi => twi.TwitterId == twi_id && twi.userId == user_id);

            if (!q.Any())
            {
                return(Helper.JsonConverter.Error(400, "您没有发表改动态"));
            }

            Twitter _twi = q.Single();

            ctx.Twitters.Remove(_twi);
            ctx.SaveChanges();

            return(JsonConverter.BuildResult(null));
        }
コード例 #15
0
ファイル: TeamBiz.cs プロジェクト: enochii/Backend
        //学生加入队伍
        public static object PostTeamAttendance(object json)
        {
            try
            {
                var body       = Helper.JsonConverter.Decode(json);
                var team_id    = int.Parse(body["team_id"]);
                var student_id = int.Parse(body["user_id"]);

                using (var context = new NBackendContext())
                {
                    var any_team = context.Teams.Where(a => a.TeamId == team_id);
                    if (!any_team.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "没队伍啊"));
                    }

                    var any_student = context.Students.Where(a => a.StudentId == student_id);
                    if (!any_student.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "这个人有问题啊"));
                    }

                    context.TeamStudents.Add(new TeamStudent
                    {
                        teamId    = team_id,
                        studentId = student_id
                    });
                    context.SaveChanges();
                    return(Helper.JsonConverter.BuildResult(null));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
コード例 #16
0
        public static object UpdateInfo(string token, object json)
        {
            try
            {
                Dictionary <string, string> body = JsonConverter.Decode(json);

                NBackendContext ctx = new NBackendContext();

                int id = Helper.JwtManager.DecodeToken(token);

                User user = getUserById(ctx, id);
                if (user == null)
                {
                    return(JsonConverter.Error(400, "用户不存在"));
                }

                var user_name  = body["user_name"];
                var department = body["department"];
                //var password = body["password"];
                var phone_number = body["phone_number"];
                var email        = body["email"];
                var avatar       = body["avatar"];
                var role         = body["role"];

                user.user_name  = user_name;
                user.department = department;
                //user.password = password;
                user.phone_number = phone_number;
                user.mail         = email;
                user.avatar       = avatar;
                user.role         = role;

                int    grade = -1;
                string job_title;
                if (user.role.Equals("student"))
                {
                    grade = int.Parse(body["grade"]);
                    var q = ctx.Students.Where(stu => stu.StudentId == user.Id);
                    if (!q.Any())
                    {
                        return(JsonConverter.Error(400, "没有这个人"));
                    }
                    else
                    {
                        var stu = q.Single();
                        stu.grade = grade;
                    }
                }
                else
                {
                    job_title = body["job_title"];
                    var q = ctx.Teachers.Where(tea => tea.TeacherId == user.Id);
                    if (!q.Any())
                    {
                        return(JsonConverter.Error(400, "用户不存在"));
                    }
                    else
                    {
                        var tea = q.Single();
                        tea.job_title = job_title;
                    }
                }

                ctx.SaveChanges();

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

                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,

                    following = following_num,
                    follower  = followers_num,
                };

                return(JsonConverter.BuildResult(data));
            }
            catch (Exception e)
            {
                return(Helper.JsonConverter.Error(400, "更新信息出错"));
            }
        }
コード例 #17
0
        //创建考试
        public static object postExam(string token, object json)
        {
            try
            {
                int             user_id = JwtManager.DecodeToken(token);
                NBackendContext ctx     = new NBackendContext();
                //验证该用户是否是教学的老师
                User user = UserBiz.getUserById(ctx, user_id);
                if (user == null || user.role != "teacher_edu")
                {
                    return(Helper.JsonConverter.Error(400, "该用户没有权限创建试卷"));
                }

                //var body = Helper.JsonConverter.Decode(json);
                var body = JsonConvert.DeserializeObject <Dictionary <string, object> >(json.ToString());

                int    sec_id    = (int)(long)body["sec_id"];
                int    course_id = (int)(long)body["course_id"];
                string semester  = (string)body["semester"];
                int    year      = (int)(long)body["year"];

                string scope = (string)body["scope"];
                string type  = (string)body["type"];

                string start_time = (string)body["start_time"];
                string end_time   = (string)body["end_time"];
                string title      = (string)body["title"];

                //NBackendContext ctx = new NBackendContext();
                //创建考试第一步
                Exam exam = new Exam
                {
                    secId      = sec_id,
                    courseId   = course_id,
                    semester   = semester,
                    year       = year,
                    scope      = scope,
                    type       = type2Id(type),
                    start_time = start_time,
                    end_time   = end_time,
                    title      = title,
                };

                ctx.Exams.Add(exam);

                var questions = (JArray)body["questions"];


                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>();


                    int single_score = ((JValue)__body["score"]).Value <int>();
                    int index        = ((JValue)__body["index"]).Value <int>();

                    //if (questions.Select(_qu=>_qu.).Contains(question_id))
                    //{
                    ctx.ExamQuestions.Add(new ExamQuestion
                    {
                        examId     = exam.ExamId,
                        questionId = question_id,
                        score      = single_score,
                        index      = index,
                    });
                    //}
                    //else
                    //{
                    //    //有一道题找不到?
                    //}
                }

                //创建考试第二步
                //int exam_id = exam.ExamId;
                //string _quess = body["questions"];

                //var quess = JsonConvert.DeserializeObject<List<object>>(_quess);

                //var questions = ctx.Questions.Select(qu => qu.QuestionId).ToList();
                //foreach (object obj in quess)
                //{
                //    var _body = Helper.JsonConverter.Decode(obj);
                //    int question_id = int.Parse(_body["question_id"]);
                //    int single_score = int.Parse(_body["score"]);
                //    int index = int.Parse(_body["index"]);

                //    if (questions.Contains(question_id))
                //    {
                //        ctx.ExamQuestions.Add(new ExamQuestion
                //        {
                //            examId = exam_id,
                //            questionId = question_id,
                //            score = single_score,
                //            index = index,
                //        });
                //    }
                //    else
                //    {
                //        //有一道题找不到?
                //    }
                //}


                ctx.SaveChanges();

                var data = new
                {
                    //exam_id
                };
                return(Helper.JsonConverter.BuildResult(data));
            }
            catch (Exception e)
            {
                return(Helper.JsonConverter.Error(400, "创建考试时出错"));
            }
        }
コード例 #18
0
        //删除、修改、提交题目全靠它
        private static object questionHelper(string token, object json, int option)
        {
            int user_id = JwtManager.DecodeToken(token);

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

            if (user == null || !user.role.Equals("teacher_edu"))
            {
                //可以再判断这个老师是不是教这个的
                return(Helper.JsonConverter.Error(400, "您未登录或者没有权限"));
            }

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

            try
            {
                //删除、修改、提交题目分发逻辑
                switch (option)
                {
                default:
                {
                    int    course_id = int.Parse(body["course_id"]);
                    string chapter   = body["chapter"];
                    string content   = body["content"];
                    string options   = body["options"];
                    string answer    = body["answer"];

                    if (option == POST)
                    {
                        var newq = new Question
                        {
                            courseId = course_id,
                            chapter  = chapter,
                            content  = content,
                            options  = options,
                            answer   = answer,
                        };
                        ctx.Questions.Add(newq);
                        ctx.SaveChanges();
                        object data = new
                        {
                            question_id = newq.QuestionId
                        };
                        return(Helper.JsonConverter.BuildResult(data));
                    }
                    else if (option == PUT)
                    {
                        int question_id = int.Parse(body["question_id"]);
                        var q           = ctx.Questions.Where(qu => qu.QuestionId == question_id);
                        if (!q.Any())
                        {
                            return(Helper.JsonConverter.Error(400, "没有这道题"));
                        }
                        else
                        {
                            Question question = q.Single();
                            question.answer  = answer;
                            question.chapter = chapter;
                            question.options = options;
                            question.content = content;
                            ctx.SaveChanges();
                        }
                    }
                    return(Helper.JsonConverter.BuildResult(null));
                }

                case DELETE:
                {
                    int question_id = int.Parse(body["question_id"]);
                    var q           = ctx.Questions.Where(qu => qu.QuestionId == question_id);
                    if (!q.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "没有这道题"));
                    }
                    else
                    {
                        var qu = q.Single();
                        ctx.Questions.Remove(qu);
                        ctx.SaveChanges();
                    }

                    return(Helper.JsonConverter.BuildResult(null));
                    //break;
                }
                }
            }
            catch (Exception e)
            {
                return(Helper.JsonConverter.Error(400, "请检查您的提交信息"));
            }
        }
コード例 #19
0
ファイル: DiscussionBiz.cs プロジェクト: enochii/Backend
        public static object PostDiscussion(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"]);
                var user_id     = int.Parse(body["user_id"]);
                var content     = body["content"];
                var time        = body["time"];
                var question_id = int.Parse(body["question_id"]);
                //var discussion_id = int.Parse(body["discussion_id"]);

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

                    if (time.Count() > 20 || time.Count() < 16)
                    {
                        return(Helper.JsonConverter.Error(400, "这个时间格式有问题"));
                    }

                    Discussion new_discussion = new Discussion();
                    if (question_id == 0)
                    {
                        new_discussion = new Discussion
                        {
                            secId      = sec_id,
                            courseId   = course_id,
                            semester   = semester,
                            year       = year,
                            userId     = user_id,
                            content    = content,
                            time       = time,
                            is_comment = false,
                        };
                        context.Discussions.Add(new_discussion);
                    }
                    else
                    {
                        var any_discussion = context.Discussions.Where(a => a.DisscussionId == question_id);
                        if (!any_discussion.Any())
                        {
                            return(Helper.JsonConverter.Error(400, "这个问题不对啊"));
                        }

                        new_discussion = new Discussion
                        {
                            secId      = sec_id,
                            courseId   = course_id,
                            semester   = semester,
                            year       = year,
                            userId     = user_id,
                            content    = content,
                            time       = time,
                            is_comment = true
                        };
                        any_discussion.Single().comments.Add(new_discussion);
                    }

                    // 写数据库
                    context.SaveChanges();

                    return(Helper.JsonConverter.BuildResult(new
                    {
                        discussion_id = new_discussion.DisscussionId
                    }));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }
コード例 #20
0
ファイル: ClassBiz.cs プロジェクト: enochii/Backend
        //教师创建班级
        public static object CreateClass(object json)
        {
            try
            {
                //取数据
                var jObject = new JObject();
                jObject = JObject.Parse(json.ToString());
                JArray jlist       = JArray.Parse(jObject["time_slots"].ToString());
                var    course_id   = int.Parse(jObject["course_id"].ToString());
                var    semester    = jObject["semester"].ToString();
                var    year        = int.Parse(jObject["year"].ToString());
                var    building    = jObject["building"].ToString();
                var    room_number = jObject["room_number"].ToString();
                var    avatar      = jObject["avatar"].ToString();
                var    start_week  = int.Parse(jObject["start_week"].ToString());
                var    end_week    = int.Parse(jObject["end_week"].ToString());
                var    user_id     = int.Parse(jObject["user_id"].ToString());

                //与数据库交互
                using (var context = new NBackendContext())
                {
                    //验证数据
                    var any_course = context.Courses.Where(a => a.CourseId == course_id);
                    if (!any_course.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "不存在这门课程"));
                    }

                    if (semester == "Spring")
                    {
                        if (int.Parse(DateTime.Now.Month.ToString()) > 6)
                        {
                            return(Helper.JsonConverter.Error(400, "这都下半学期啦"));
                        }
                    }

                    var any_teacher = context.Users.Where(a => a.Id == user_id && a.role != "student");
                    if (!any_teacher.Any())
                    {
                        return(Helper.JsonConverter.Error(400, "不存在这个老师"));
                    }

                    if (avatar == null)
                    {
                        avatar = "https://view.moezx.cc/images/2018/06/12/31133259.jpg";
                    }
                    if (start_week < 1 || end_week > 17)
                    {
                        return(Helper.JsonConverter.Error(410, "开始周数或者结束周数不合理"));
                    }
                    //插入班级
                    var the_class = new Section
                    {
                        courseId   = course_id,
                        semester   = semester,
                        year       = year,
                        building   = building,
                        room_numer = room_number,
                        avatar     = avatar,
                        start_week = start_week,
                        end_week   = end_week,
                    };

                    for (int i = 0; i < jlist.Count(); i++)
                    {
                        var day              = jlist[i]["day"].ToString();
                        var start_section    = int.Parse(jlist[i]["start_section"].ToString());
                        var length           = int.Parse(jlist[i]["length"].ToString());
                        var single_or_double = int.Parse(jlist[i]["single_or_double"].ToString());

                        var any_time_slot = context.SectionTimes.Where(a => a.start_section == start_section && a.length == length);
                        if (!any_time_slot.Any())
                        {
                            return(Helper.JsonConverter.Error(400, "不存在这个时间方案"));
                        }
                        var the_time_slot = any_time_slot.Single();
                    }

                    context.Sections.Add(the_class);
                    context.SaveChanges();

                    //插入multisectiontime表
                    for (int i = 0; i < jlist.Count(); i++)
                    {
                        var day              = jlist[i]["day"].ToString();
                        var start_section    = int.Parse(jlist[i]["start_section"].ToString());
                        var length           = int.Parse(jlist[i]["length"].ToString());
                        var single_or_double = int.Parse(jlist[i]["single_or_double"].ToString());

                        var any_time_slot = context.SectionTimes.Where(a => a.start_section == start_section && a.length == length);
                        if (!any_time_slot.Any())
                        {
                            return(Helper.JsonConverter.Error(400, "不存在这个时间方案"));
                        }
                        var the_time_slot = any_time_slot.Single();

                        context.MultiSectionTimes.Add(new MultiSectionTimes
                        {
                            SecId            = the_class.SecId,
                            courseId         = the_class.courseId,
                            semester         = the_class.semester,
                            year             = the_class.year,
                            section_timeId   = the_time_slot.SectionTimeId,
                            day              = day,
                            single_or_double = single_or_double
                        });
                    }
                    //插入teach表
                    context.Teaches.Add(new Teach
                    {
                        TeacherId = user_id,
                        SecId     = the_class.SecId,
                        courseId  = the_class.courseId,
                        semester  = the_class.semester,
                        year      = the_class.year
                    });
                    context.SaveChanges();
                    return(Helper.JsonConverter.BuildResult(new { the_class.SecId }));
                }
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查"));
            }
        }