Ejemplo n.º 1
0
        /// <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("");
            }));
        }
Ejemplo n.º 2
0
        /// <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();
            }));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Get teams data by page index and page size.
        /// </summary>
        /// <param name="page">Query page index.First is 1.</param>
        /// <param name="pageSize">Data size per page.</param>
        /// <returns></returns>
        public Task <string> GetTeams(int page, int pageSize = 30)
        {
            return(Task.Run(() =>
            {
                if (page < 1)
                {
                    return ResponseFail.ExpectationFailed(message: "页数应该大于等于1");
                }

                if (pageSize < 1)
                {
                    return ResponseFail.ExpectationFailed(message: "每页数量应该为正数");
                }

                try
                {
                    var excludePre = context.Teams.ToList().Take((page - 1) * pageSize);
                    var result = context.Teams.ToList().Except(excludePre).Take(pageSize);
                    return ResponseSuccess.Json(result);
                }
                catch (Exception e)
                {
                    return ResponseFail.ExpectationFailed(message: e.Message);
                }
            }));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Get team data by team id.
        /// </summary>
        /// <param name="teamId">Team's id.</param>
        /// <returns></returns>
        public Task <string> GetTeam(int teamId)
        {
            return(Task.Run(() =>
            {
                var result = from team in context.Teams.ToList()
                             join teamuser in context.TeamWithUsers.ToList() on team.Id equals teamuser.TeamId
                             join user in context.Users.ToList() on teamuser.UserId equals user.Id
                             where team.Id == teamId && teamuser.UserRole == 1
                             select new TeamDTO
                {
                    Id = team.Id,
                    TeamName = team.TeamName,
                    TeamDescription = team.TeamDescription,
                    CreatorId = teamuser.UserId,
                    CreatorName = user.Name
                };

                if (result.Count() == 0)
                {
                    return ResponseFail.NoContent();
                }

                if (result.Count() > 1)
                {
                    return ResponseFail.ExpectationFailed(message: "数据异常,非唯一,无法操作");
                }

                return ResponseSuccess.Json(result.First());
            }));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Update user data in the team.
        /// </summary>
        /// <param name="dto">Data to update.</param>
        /// <returns></returns>
        public Task <string> UpdateUser(Infrastructure.DTO.UserTeamDTO dto)
        {
            return(Task.Run(() =>
            {
                try
                {
                    var teamWithUser = context.TeamWithUsers.ToList().Find(t => t.TeamId == dto.TeamId && t.UserId == dto.UserId);
                    if (teamWithUser == null)
                    {
                        return ResponseFail.NoContent();
                    }

                    var role = context.UserRoles.Where(t => t.Id == dto.RoleId);
                    if (role.Count() == 0)
                    {
                        return ResponseFail.ExpectationFailed(message: "用户角色值异常");
                    }

                    teamWithUser.UserRole = dto.RoleId;

                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    return ResponseFail.ExpectationFailed(message: e.Message);
                }

                return ResponseSuccess.Json();
            }));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Get team users by team id.
        /// </summary>
        /// <param name="teamId">Team id.</param>
        /// <returns></returns>
        public Task <string> GetUsers(int teamId)
        {
            return(Task.Run(() =>
            {
                var result = from teamWithUsers in context.TeamWithUsers.ToList()
                             join teams in context.Teams.ToList() on teamWithUsers.TeamId equals teams.Id
                             join users in context.Users.ToList() on teamWithUsers.UserId equals users.Id
                             join roles in context.UserRoles.ToList() on teamWithUsers.UserRole equals roles.Id
                             where teamWithUsers.TeamId == teamId
                             select new UserTeamDTO
                {
                    TeamId = teamId,
                    TeamName = teams.TeamName,
                    TeamDescription = teams.TeamDescription,
                    UserId = users.Id,
                    UserName = users.Name,
                    RoleId = teamWithUsers.UserRole,
                    RoleDescription = roles.RoleDescription
                };

                if (result.Count() == 0)
                {
                    return ResponseFail.NoContent();
                }

                return ResponseSuccess.Json(result);
            }));
        }
Ejemplo n.º 7
0
        /// <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("", "非授权用户,无权调用接口"));
        }
Ejemplo n.º 8
0
        /// <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);
            }));
        }
Ejemplo n.º 9
0
        /// <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("注册成功,请登录");
            }));
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
 /// <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();
         }
     }));
 }
Ejemplo n.º 12
0
        /// <summary>
        /// Get users by page index and page size.
        /// </summary>
        /// <param name="page">Query page index.First is 1.</param>
        /// <param name="pageSize">Data size per page.</param>
        /// <returns></returns>
        public Task <string> GetUsers(int page, int pageSize = 30)
        {
            return(Task.Run(() =>
            {
                try
                {
                    var excludePre = context.Users.ToList().Take((page - 1) * pageSize);
                    var result = context.Users.ToList().Except(excludePre).Take(pageSize);

                    return ResponseSuccess.Json(result);
                }
                catch (Exception e)
                {
                    return ResponseFail.ExpectationFailed(message: e.Message);
                }
            }));
        }
Ejemplo n.º 13
0
        /// <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);
            }));
        }
Ejemplo n.º 14
0
        /// <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();
            }));
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Delete team data by team's id.
        /// </summary>
        /// <param name="teamId">Team's id.</param>
        /// <returns></returns>
        public Task <string> DeleteTeam(int teamId)
        {
            return(Task.Run(() =>
            {
                var team = context.Teams.ToList().Find(t => t.Id == teamId);
                if (team == null)
                {
                    return ResponseFail.NoContent("");
                }
                context.Teams.Remove(team);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    return ResponseFail.ExpectationFailed(message: e.Message);
                }

                return ResponseSuccess.Json();
            }));
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Delete user from team.
        /// </summary>
        /// <param name="userId">User id.</param>
        /// <param name="teamId">Team id.</param>
        /// <returns></returns>
        public Task <string> DeleteUser(int userId, int teamId)
        {
            return(Task.Run(() =>
            {
                try
                {
                    var teamWithUser = context.TeamWithUsers.ToList().Find(t => t.TeamId == teamId && t.UserId == userId);
                    if (teamWithUser == null)
                    {
                        return ResponseFail.NoContent();
                    }

                    context.TeamWithUsers.Remove(teamWithUser);

                    context.SaveChanges();
                }   catch (Exception e)
                {
                    return ResponseFail.ExpectationFailed(message: e.Message);
                }

                return ResponseSuccess.Json();
            }));
        }
Ejemplo n.º 17
0
        /// <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();
            }));
        }
Ejemplo n.º 18
0
        /// <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();
                    }
                }
            }));
        }
Ejemplo n.º 19
0
 /// <summary>
 /// Error message for login.
 /// </summary>
 /// <returns></returns>
 private string CheckLoginInfo()
 {
     return(ResponseFail.Json("", "用户名或密码错误"));
 }