/// <summary> /// Update team data. /// </summary> /// <param name="team">Team's data.</param> /// <returns></returns> public Task <string> UpdateTeam(Infrastructure.DTO.TeamDTO team) { return(Task.Run(() => { if (team == null) { return ResponseFail.Json("", "数据异常,无法更新"); } var teamObj = context.Teams.ToList().Find(t => t.Id == team.Id); if (teamObj == null) { return ResponseFail.NoContent(); } teamObj.TeamName = team.TeamName; teamObj.TeamDescription = team.TeamDescription; try { context.SaveChanges(); } catch (Exception e) { return ResponseFail.ExpectationFailed(message: e.Message); } return ResponseSuccess.Json(""); })); }
/// <summary> /// Authorize fail. /// </summary> /// <param name="httpContext"></param> /// <returns></returns> private void Restrict(HttpActionContext httpContext) { httpContext.Response = new HttpResponseMessage(); httpContext.Response.StatusCode = HttpStatusCode.Unauthorized; httpContext.Response.Content = new StringContent(ResponseFail.Json("", "非授权用户,无权调用接口")); }
/// <summary> /// Update user's data. /// </summary> /// <param name="dto">User's data.</param> /// <returns></returns> public Task <string> UpdateUser(Infrastructure.DTO.UserDTO dto) { return(Task.Run(() => { var user = context.Users.ToList().Find(t => t.Id == dto.Id); if (user == null) { return ResponseFail.Json("", "无此用户,操作失败", 204); } else if (string.IsNullOrEmpty(dto.Name)) { return ResponseFail.ExpectationFailed(message: "昵称/姓名不能为空"); } user.Name = dto.Name; try { context.SaveChanges(); } catch (Exception e) { return ResponseFail.ExpectationFailed(message: e.Message); } return ResponseSuccess.Json(); })); }
/// <summary> /// Get user data by user's id. /// </summary> /// <param name="userId">User's id.</param> /// <returns></returns> public Task <string> GetUser(int userId) { return(Task.Run(() => { var result = context.Users.ToList().Find(t => t.Id == userId); if (result == null) { return ResponseFail.Json("", "无此用户数据"); } return ResponseSuccess.Json(result); })); }
public void TestResponseFail_Json() { string json = ResponseFail.Json("", "testerrormsg"); ResponseJson obj = JsonConvert.DeserializeObject <ResponseJson>(json); Assert.IsFalse(obj.Status); json = ResponseFail.Json("123", "testerrormsg", 401); ResponseJson <string> objStr = JsonConvert.DeserializeObject <ResponseJson <string> >(json); Assert.IsFalse(objStr.Status); Assert.AreEqual(objStr.Data, "123"); Assert.AreEqual(objStr.StatusCode, 401); }
/// <summary> /// Create a new user data. /// </summary> /// <param name="dto">New user's data.</param> /// <returns></returns> public Task <string> CreateUser(Infrastructure.DTO.RegisteDTO register) { return(Task.Run(() => { if (register == null) { return ResponseFail.Json("", "注册信息未填写"); } else if (string.IsNullOrEmpty(register.UserName)) { return ResponseFail.Json("", "用户名未填写"); } else if (string.IsNullOrEmpty(register.Name)) { return ResponseFail.Json("", "昵称/真实姓名未填写"); } else if (string.IsNullOrEmpty(register.Password)) { return ResponseFail.Json("", "密码未填写"); } else if (register.Password != register.RePassword) { return ResponseFail.Json("", "两次密码填写不一致"); } else if (context.Users.ToList().Where(t => t.UserName == register.UserName).Count() > 0) { return ResponseFail.Json("", "用户名重复,请换一个"); } var user = new User() { UserName = register.UserName, Name = register.Name, Password = register.Password }; context.Users.Add(user); try { context.SaveChanges(); } catch (Exception e) { return ResponseFail.Json("", e.Message); } return ResponseSuccess.Json("注册成功,请登录"); })); }
/// <summary> /// User logout. /// </summary> /// <param name="authToken">User's authorized token.</param> /// <returns></returns> public Task <string> Logout(string authToken) { return(Task.Run(() => { if (UserLoginCache.ContainsKey(authToken)) { bool result = UserLoginCache.RemoveCache(authToken); return result ? ResponseSuccess.Json() : ResponseFail.Json("", "注销失败,请重试"); } else { return ResponseSuccess.Json(); } })); }
/// <summary> /// Create new team data. /// </summary> /// <param name="team">New team's data.</param> /// <returns></returns> public Task <string> CreateTeam(TeamDTO team) { return(Task.Run(() => { if (team == null) { return ResponseFail.Json("", "数据异常,无法创建组"); } Team teamObj = new Team() { TeamName = team.TeamName, TeamDescription = team.TeamDescription }; context.Teams.Add(teamObj); try { context.SaveChanges(); } catch (Exception e) { return ResponseFail.ExpectationFailed(message: e.Message); } TeamWithUser teamWithUser = new TeamWithUser() { TeamId = teamObj.Id, UserId = team.CreatorId, UserRole = 1 }; context.TeamWithUsers.Add(teamWithUser); try { context.SaveChanges(); } catch (Exception e) { context.Teams.Remove(teamObj); context.SaveChanges(); return ResponseFail.ExpectationFailed(message: e.Message); } return ResponseSuccess.Json(team); })); }
/// <summary> /// Add user into the team. /// </summary> /// <param name="userId">User id.</param> /// <param name="teamId">Team id.</param> /// <returns></returns> public Task <string> AddUser(int userId, int teamId) { return(Task.Run(() => { var user = context.Users.ToList().Find(t => t.Id == userId); if (user == null) { return ResponseFail.Json("", "无相应用户,操作失败"); } var team = context.TeamWithUsers.ToList().Where(t => t.TeamId == teamId); if (team == null) { return ResponseFail.Json("", "无相应组,操作失败"); } if (team.Count() == 0) { return ResponseFail.Json("", "无相应组,操作失败"); } var teamUser = new TeamWithUser() { TeamId = teamId, UserId = userId, UserRole = 3 }; context.TeamWithUsers.Add(teamUser); try { context.SaveChanges(); } catch (Exception e) { return ResponseFail.ExpectationFailed(message: e.Message); } return ResponseSuccess.Json(); })); }
/// <summary> /// Delete user by user id. /// </summary> /// <param name="userId">User's id.</param> /// <returns></returns> public Task <string> DeleteUser(int userId) { return(Task.Run(() => { var user = context.Users.ToList().Find(t => t.Id == userId); if (user == null) { return ResponseFail.Json("", "无此用户,操作失败", 204); } context.Users.Remove(user); try { context.SaveChanges(); } catch (Exception e) { return ResponseFail.Json("", e.Message); } return ResponseSuccess.Json(); })); }
/// <summary> /// User login. /// </summary> /// <param name="dto">Login information.</param> /// <returns></returns> public Task <string> Login(LoginDTO login) { return(Task.Run(() => { if (login == null) { return ResponseFail.Json("", "用户名和密码为空"); } else if (!string.IsNullOrEmpty(login.AuthToken)) { LoginUserInfo userInfo = UserLoginCache.FindUser(login.AuthToken); if (userInfo.ID == 0) { return ResponseFail.Json("[AuthToken]无效"); } if (!userInfo.OutTime()) { return ResponseSuccess.Json(UserLoginCache.FindUser(login.AuthToken)); } } else if (string.IsNullOrEmpty(login.UserName)) { return ResponseFail.Json("", "用户名为空"); } else if (string.IsNullOrEmpty(login.Password)) { return ResponseFail.Json("", "密码为空"); } else if (string.IsNullOrEmpty(login.TimeStamp)) { return ResponseFail.Json("", "参数异常,请检查[TimeStamp]"); } else if (!Utils.CompareMD5(login.Token, string.Format("{0}-{1}", login.UserName, login.TimeStamp))) { return ResponseFail.Json("", "参数异常,请检查[Token]"); } User user = context.Users.ToList().Find(t => t.UserName == login.UserName); if (user == null) { return CheckLoginInfo(); } else if (string.IsNullOrEmpty(user.Password)) { return ResponseFail.Json("", "未设置密码"); } else { if (user.Password == login.Password) { string token = Utils.MD5(string.Format("{0}-{1}-{2}", user.UserName, login.TimeStamp, DateTime.Now.ToUniversalTime().ToString())); UserLoginCache.AddUserCache(token, user); return ResponseSuccess.Json(UserLoginCache.FindUser(token)); } else { return CheckLoginInfo(); } } })); }
/// <summary> /// Error message for login. /// </summary> /// <returns></returns> private string CheckLoginInfo() { return(ResponseFail.Json("", "用户名或密码错误")); }