//删除广播 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)); } }
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")); }
//获取全部广播/班级广播 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, "查找广播资源时出错")); } }
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); }
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)); }
//获取广播的具体信息 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, "请检查输入字段格式或者值")); } }
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")); } }
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)); }
//获取用户的关注列表,包括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, "获取关注信息出错")); } }
//创建广播 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, "创建广播失败")); } }
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, "更新信息出错")); } }
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是否正确输入")); } }