public Response UpdateDepartment()
        {
            var res = new Response();

            if (userInfo.code != 200)
            {
                res.code    = userInfo.code;
                res.message = userInfo.message;
                return(res);
            }
            var departRes = wx.GetDepartmentList();

            if (departRes.code != 200)
            {
                res.code    = departRes.code;
                res.message = departRes.message;
                return(res);
            }
            List <Dictionary <string, object> > list = Json.ToList <Dictionary <string, object> >(departRes.Result);
            List <Department> listDepart             = new List <Department>();

            foreach (var dict in list)
            {
                Department d = new Department();
                d.Id       = Convert.ToInt32(dict["id"]);
                d.Name     = dict["name"].ToString();
                d.ParentId = Convert.ToInt32(dict["parentid"]);
                d.Order    = Convert.ToInt64(dict["order"]);
                listDepart.Add(d);
            }
            int rootIndex = -1;

            for (int i = 0; i < listDepart.Count; i++)
            {
                if (listDepart[i].ParentId == 0)
                {
                    rootIndex = i;
                    listDepart[rootIndex].FullName = listDepart[rootIndex].Name;
                    break;
                }
            }

            SetAllSubDepartmentFullNameAndParentName(ref listDepart, rootIndex);

            try
            {
                CrudHelper <Department> crud = new CrudHelper <Department>("department");
                crud.Delete();
                crud.Add(listDepart, true);
            }
            catch (Exception e)
            {
                res.code    = 500;
                res.message = e.ToString();
            }


            return(res);
        }
        public Response UpdateAllUserInfo()
        {
            var res = new Response();

            if (userInfo.code != 200)
            {
                res.code    = userInfo.code;
                res.message = userInfo.message;
                return(res);
            }
            var userRes = wx.GetUserList();

            if (userRes.code != 200)
            {
                res.code    = userRes.code;
                res.message = userRes.message;
                return(res);
            }
            List <Dictionary <string, object> > list = Json.ToList <Dictionary <string, object> >(userRes.Result);

            try
            {
                CrudHelper <User>     uCrud   = new CrudHelper <User>("user");
                List <User>           oldList = uCrud.GetList();
                List <User>           newList = new List <User>();
                List <UserDepartment> udList  = new List <UserDepartment>();

                for (int i = 0; i < oldList.Count; i++)
                {
                    oldList[i].Status = "2";//将已存如本地数据库,但未在企业微信找到的用户状态置为禁用
                }
                foreach (var dict in list)
                {
                    int    index        = -1;
                    string WechatUserId = dict["userid"].ToString();
                    for (int i = 0; i < oldList.Count; i++)
                    {
                        if (oldList[i].WechatUserId == WechatUserId)
                        {
                            index = i;
                            break;
                        }
                    }
                    if (index >= 0)
                    {
                        User u = oldList[index];
                        u.UserName = ToolDictionary.GetValueString("name", dict);
                        u.Address  = ToolDictionary.GetValueString("address", dict);
                        u.Avatar   = ToolDictionary.GetValueString("avatar", dict);
                        u.Email    = ToolDictionary.GetValueString("email", dict);
                        u.Gender   = ToolDictionary.GetValueString("gender", dict);
                        u.Mobile   = ToolDictionary.GetValueString("mobile", dict);
                        u.Position = ToolDictionary.GetValueString("position", dict);
                        u.Status   = ToolDictionary.GetValueString("status", dict);
                    }
                    else
                    {
                        User u = new User();
                        u.WechatUserId = WechatUserId;
                        u.UserName     = ToolDictionary.GetValueString("name", dict);
                        u.Address      = ToolDictionary.GetValueString("address", dict);
                        u.Avatar       = ToolDictionary.GetValueString("avatar", dict);
                        u.Email        = ToolDictionary.GetValueString("email", dict);
                        u.Gender       = ToolDictionary.GetValueString("gender", dict);
                        u.Mobile       = ToolDictionary.GetValueString("mobile", dict);
                        u.Position     = ToolDictionary.GetValueString("position", dict);
                        u.Status       = ToolDictionary.GetValueString("status", dict);
                        newList.Add(u);
                    }

                    //构建UserDepartment数据
                    List <int> dl = Json.ToList <int>(dict["department"].ToString());
                    List <int> ol = Json.ToList <int>(dict["order"].ToString());
                    List <int> ll = Json.ToList <int>(dict["is_leader_in_dept"].ToString());
                    for (int i = 0; i < dl.Count; i++)
                    {
                        UserDepartment ud = new UserDepartment();
                        ud.WechatUserId = WechatUserId;
                        ud.DepartmentId = dl[i];
                        ud.IsLeader     = ll[i];
                        ud.Order        = ol[i];
                        udList.Add(ud);
                    }
                }
                CrudHelper <UserDepartment> udCrud = new CrudHelper <UserDepartment>("user_department");
                uCrud.Update(oldList);
                uCrud.Add(newList);
                udCrud.Delete();
                udCrud.Add(udList);
            }
            catch (Exception e)
            {
                res.code    = 500;
                res.message = e.ToString();
            }

            List <Department> listDepart = new List <Department>();


            return(res);
        }