示例#1
0
        /// <summary>
        /// 获取人员信息并保存
        /// </summary>
        private void getUserInfo( )
        {
            DataTable depart = _bll.getDepart( );

            if (depart == null || depart.Rows.Count < 1)
            {
                return;
            }

            UpdateAccessToken(false);
            IDingTalkClient      client = new DefaultDingTalkClient(Urls.department_user);
            List <UserResultSet> list   = new List <UserResultSet> ( );

            _bll.DeleteUser( );

            for (int i = 0; i < depart.Rows.Count; i++)
            {
                OapiUserSimplelistRequest req = new OapiUserSimplelistRequest( );
                req.Lang         = "zh_CN";
                req.DepartmentId = string.IsNullOrEmpty(depart.Rows [i] ["DBA001"].ToString( )) == true ? 1L : Convert.ToInt64(depart.Rows [i] ["DBA001"].ToString( ));
                req.Offset       = 0L;
                req.Size         = 100L;
                req.Order        = "custom";
                req.SetHttpMethod("GET");
                OapiUserSimplelistResponse rsp = client.Execute(req, AccessToken.Value);
                list = XmlUtil.JsonStringToObj <UserResultSet> (rsp.Body);
                if (list.Count > 0)
                {
                    foreach (UserResultSet user in list)
                    {
                        if (user.userlist.Count > 0)
                        {
                            isOk = _bll.SaveUser(user.userlist, req.DepartmentId.ToString( ));
                        }
                    }
                }
            }
            if (isOk == false)
            {
                Utility.LogHelper.WriteLog("人员信息保存失败");
            }

            //string apiurl = FormatApiUrlWithToken ( Urls . user_list );
            //var result = Analyze . Get<UserResultSet> ( apiurl );
            //List<UserResultSet> list = XmlUtil . JsonStringToObj<UserResultSet> ( result . Json );
            //if ( list . Count > 0 )
            //{
            //    foreach ( UserResultSet user in list )
            //    {
            //        if ( user . department . Count > 0 )
            //        {
            //            isOk = _bll . SaveUser ( user . department );
            //        }
            //    }
            //}
        }
示例#2
0
        /// <summary>
        /// 获取人员列表
        /// </summary>
        /// <returns></returns>
        public static OapiUserSimplelistResponse GetUserList(long DepartmentId)
        {
            DefaultDingTalkClient     client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist");
            OapiUserSimplelistRequest request = new OapiUserSimplelistRequest();

            request.DepartmentId = DepartmentId;
            request.SetHttpMethod("GET");
            OapiUserSimplelistResponse response = client.Execute(request, AccessToken);

            return(response);
        }
示例#3
0
        /// <summary>
        /// 获取部门用户
        /// </summary>
        /// <param name="accessToken">accessToken</param>
        /// <param name="departmentId">获取的部门id</param>
        /// <param name="offSet">支持分页查询,与size参数同时设置时才生效,此参数代表偏移量</param>
        /// <param name="size">支持分页查询,与offset参数同时设置时才生效,此参数代表分页大小,最大100</param>
        /// <returns></returns>
        public OapiUserSimplelistResponse SimpleList(string accessToken, long departmentId, long offSet, long size)
        {
            IDingTalkClient           client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist");
            OapiUserSimplelistRequest request = new OapiUserSimplelistRequest();

            request.DepartmentId = departmentId;
            request.Offset       = offSet;
            request.Size         = size;
            request.SetHttpMethod("GET");
            OapiUserSimplelistResponse response = client.Execute(request, accessToken);

            return(response);
        }
示例#4
0
        /// <summary>
        /// 判断人员是否存在
        /// </summary>
        /// <returns></returns>
        public static bool IsExists(string userid, string ddid)
        {
            bool flag = false;
            OapiUserSimplelistResponse response = GetUserList(Convert.ToInt32(ddid));

            if (response.Userlist != null)
            {
                if (response.Userlist.Where(x => x.Userid == userid).ToList().Count > 0)
                {
                    flag = true;
                }
            }
            return(flag);
        }
示例#5
0
        /// <summary>
        /// 获取部门用户列表,仅返回UserId和UserName
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="parentId"></param>
        /// <returns></returns>
        public static List <UserDetailInfo> GetDepartmentUserList(string accessToken, int departmentId = 1)
        {
            try
            {
                IDingTalkClient           client  = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist");
                OapiUserSimplelistRequest request = new OapiUserSimplelistRequest();
                request.DepartmentId = departmentId;
                request.Offset       = 0L;
                request.Size         = 100L;
                request.SetHttpMethod("GET");

                OapiUserSimplelistResponse response = client.Execute(request, accessToken);
                if (response != null)
                {
                    if (response.Errcode == 0)
                    {
                        List <UserDetailInfo> userlist = new List <UserDetailInfo>();
                        if (response.Userlist != null && response.Userlist.Count > 0)
                        {
                            foreach (OapiUserSimplelistResponse.UserlistDomain info in response.Userlist)
                            {
                                UserDetailInfo user = new UserDetailInfo();
                                user.UserId   = info.Userid;
                                user.UserName = info.Name;
                                userlist.Add(user);
                            }
                        }
                        return(userlist);
                    }
                    else
                    {
                        throw new Exception(response.Errmsg);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(null);
        }