Exemple #1
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));
            }
        }
Exemple #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"));
        }
Exemple #3
0
        //获取全部广播/班级广播
        public static object getBroadcasts(string token, object json, bool all)
        {
            List <object> class_bros = null;

            try
            {
                if (all)
                {
                    var global_bros = getGlobalBroadcasts(); //全局广播
                    class_bros = getAllBroadcasts(token);    //所有班级的广播
                    foreach (object bro in global_bros)
                    {
                        class_bros.Add(bro);
                    }
                }
                else
                {
                    class_bros = getBroadcastsOfClass(token, json);
                    if (class_bros == null)
                    {
                        return(JsonConverter.Error(400, "信息填写错误或者其他异常"));
                    }
                }

                return(JsonConverter.BuildResult(new { broadcasts = class_bros }));
            }
            catch (Exception e)
            {
                return(JsonConverter.Error(404, "查找广播资源时出错"));
            }
        }
Exemple #4
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);
        }
Exemple #5
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));
        }
Exemple #6
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, "请检查输入字段格式或者值"));
            }
        }
Exemple #7
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"));
            }
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        //获取用户的关注列表,包括ers和ing
        public static object getFolowInfo(string token)
        {
            NBackendContext ctx = new NBackendContext();

            try
            {
                int  user_id = JwtManager.DecodeToken(token);
                User user    = getUserById(ctx, user_id);

                var data = new
                {
                    following = user.following.Count(),
                    follower  = user.followers.Count(),
                };

                return(JsonConverter.BuildResult(data));
            }
            catch (Exception e)
            {
                return(JsonConverter.Error(400, "获取关注信息出错"));
            }
        }
Exemple #10
0
        //创建广播
        public static object postBroadcast(string token, object json)
        {
            try
            {
                var             body = JsonConverter.Decode(json);
                NBackendContext ctx  = new NBackendContext();

                int  teacher_id = JwtManager.DecodeToken(token);
                User user       = UserBiz.getUserById(ctx, teacher_id);
                if (user == null)
                {
                    return(Helper.JsonConverter.Error(400, "你还没登录?"));
                }

                int type  = int.Parse(body["type"]);
                int scope = int.Parse(body["scope"]);

                string start_time     = body["start_time"];
                string end_time       = body["end_time"];
                string published_time = body["published_time"];
                string content        = body["content"];

                //k
                int    sec_id, course_id, year;
                string semester;

                if (scope == SCOPE_CLASS)
                {
                    if (!user.role.Equals("teacher_edu"))
                    {
                        return(Helper.JsonConverter.Error(400, "你没有权限呢"));
                    }
                    sec_id    = int.Parse(body["sec_id"]);
                    course_id = int.Parse(body["course_id"]);
                    year      = int.Parse(body["year"]);
                    semester  = body["semester"];
                }
                else
                {
                    if (!user.role.Equals("teacher_manage"))
                    {
                        return(Helper.JsonConverter.Error(400, "你没有权限呢"));
                    }
                    //默认班级
                    sec_id    = 100003;
                    course_id = 2;
                    year      = 0;
                    semester  = "Spring";
                }
                Broadcast broadcast = new Broadcast
                {
                    secId    = sec_id,
                    courseId = course_id,
                    year     = year,
                    semester = semester,

                    scope        = scope,
                    type         = type,
                    start_time   = start_time,
                    publish_time = published_time,
                    end_time     = end_time,
                    content      = content
                };

                ctx.TeacherBroadcasts.Add(new TeacherBroadcast
                {
                    teacherId   = teacher_id,
                    broadcastId = broadcast.BroadcastId
                });

                ctx.Broadcasts.Add(broadcast);
                ValidationHelper.safeSaveChanges(ctx);

                var data = new
                {
                    broadcast_id = broadcast.BroadcastId
                };
                return(JsonConverter.BuildResult(data));
            }
            catch (Exception e)
            {
                return(JsonConverter.Error(400, "创建广播失败"));
            }
        }
Exemple #11
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, "更新信息出错"));
            }
        }
Exemple #12
0
        public static object Register(object json)
        {
            try
            {
                Dictionary <string, string> body = JsonConverter.Decode(json);

                var user_id      = int.Parse(body["user_id"]);
                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"];

                //检查id是否已经存在
                var ctx = new NBackendContext();
                if (ctx.Users.Any(_user => _user.Id == user_id))
                {
                    return(JsonConverter.Error(400, "该用户已经注册"));
                }

                //根据role的值加入对应的表
                //需要插入两张表
                if (role.Equals(STUDENT))
                {
                    var grade = int.Parse(body["grade"]);
                    if (ctx.Students.Any(_user => _user.StudentId == user_id))
                    {
                        return(JsonConverter.Error(400, "该用户已经注册"));
                    }
                    ctx.Students.Add(new Student
                    {
                        StudentId = user_id,
                        grade     = grade
                    });
                }
                else
                {
                    if (!role.Equals(TEACHER_EDU) && !role.Equals(TEACHER_MANAGE))
                    {
                        return(JsonConverter.Error(400, "角色字段值有误"));
                    }
                    if (ctx.Teachers.Any(_user => _user.TeacherId == user_id))
                    {
                        return(JsonConverter.Error(400, "该用户已经注册"));
                    }
                    var job_title = body["job_title"];
                    ctx.Teachers.Add(new Teacher
                    {
                        TeacherId  = user_id,
                        job_title  = job_title,
                        is_manager = role.Equals(TEACHER_MANAGE)
                    });
                }

                string encoded_password = UserHelper.Encrypt(user_id, password);
                var    user             = new User
                {
                    Id           = user_id,
                    user_name    = user_name,
                    department   = department,
                    password     = encoded_password,
                    phone_number = phone_number,
                    mail         = email,
                    avatar       = avatar,
                    role         = role
                };
                ctx.Users.Add(user);
                //ctx.SaveChanges();
                ValidationHelper.safeSaveChanges(ctx);

                return(JsonConverter.BuildResult(null, 200, "ok"));
            }
            catch (Exception e)
            {
                return(Helper.JsonConverter.Error(400, "注册失败,请检查表单字段或者用户id是否正确输入"));
            }
        }