Esempio n. 1
0
        public async Task RemoveUserFromOrganizationUnit(UserToOrganizationUnitInput input)
        {
            var user = UserManager.Users.Where(x => x.Id == input.UserId).FirstOrDefault();

            user.OrganizationUnitId = null;
            await UserManager.UpdateAsync(user);
        }
Esempio n. 2
0
        public async Task RemoveUserFromOrganizationUnit(UserToOrganizationUnitInput input)
        {
            await UserManager.RemoveFromOrganizationUnitAsync(input.UserId, input.OrganizationUnitId);

            // set DefaultOrganizationId to null if the user has to remove organizationid is default organizationId
            var user = await UserManager.GetUserByIdAsync(input.UserId);

            if (user.DefaultOrganizationId.HasValue && user.DefaultOrganizationId.Value.CompareTo(input.OrganizationUnitId) == 0)
            {
                user.DefaultOrganizationId = null;
                await UserManager.UpdateAsync(user);

                await CurrentUnitOfWork.SaveChangesAsync();
            }
        }
Esempio n. 3
0
        public async Task AddUserToOrganizationUnit(UserToOrganizationUnitInput input)
        {
            await UserManager.AddToOrganizationUnitAsync(input.UserId, input.OrganizationUnitId);

            // Set DefaultOrganizationId to the User
            var user = await UserManager.GetUserByIdAsync(input.UserId);

            if (!user.DefaultOrganizationId.HasValue)
            {
                user.DefaultOrganizationId = input.OrganizationUnitId;
                await UserManager.UpdateAsync(user);

                await CurrentUnitOfWork.SaveChangesAsync();
            }
        }
 public async Task <bool> IsInOrganizationUnit(UserToOrganizationUnitInput input)
 {
     return(await UserManager.IsInOrganizationUnitAsync(input.UserId, input.OrganizationUnitId));
 }
 public async Task RemoveUserFromOrganizationUnit(UserToOrganizationUnitInput input)
 {
     await UserManager.RemoveFromOrganizationUnitAsync(input.UserId, input.OrganizationUnitId);
 }
 public async Task AddUserToOrganizationUnit(UserToOrganizationUnitInput input)
 {
     await UserManager.AddToOrganizationUnitAsync(input.UserId, input.OrganizationUnitId);
 }
Esempio n. 7
0
        /// <summary>
        /// 下载通讯录,递归
        /// </summary>
        /// <param name="api"></param>
        /// <param name="joDeps"></param>
        /// <param name="parentId"></param>
        private async void DownTXL(WeiXinApi api,
                                   string corpId,
                                   List <JToken> joDeps,
                                   string parentId)
        {
            var deps = joDeps.Where(d => d["parentid"].ToString() == parentId).ToList();

            for (int i = 0; i < deps.Count(); i++)
            {
                //用户对应OU的对象
                var userToOrg = new UserToOrganizationUnitInput();

                var departName = deps[i]["name"].ToString();
                var parentid   = deps[i]["parentid"].ToString();
                var id         = deps[i]["id"].ToString();

                var org = await _wx_OrganizationUnitAppService.GetOrganizationUnitsByWXID(corpId, id);

                var parentOrg = await _wx_OrganizationUnitAppService.GetOrganizationUnitsByWXPID(corpId, parentid);

                //var org = orgList.SingleOrDefault(o => o.WeiXinDepId == id);
                if (org == null)
                {//系统没有同步ID就创建
                    //因为同级别 不能用相同名字的部门,这里先查找是否有符合条件的、有就更新
                    org = await _wx_OrganizationUnitAppService.GetOrganizationUnitsByName(departName, parentOrg?.Id);

                    if (org == null)
                    {
                        var input = new WX_CreateOrganizationUnitInput();
                        input.DisplayName    = departName;
                        input.ParentId       = parentOrg?.Id;
                        input.WeiXinDepId    = id;
                        input.WeiXinParentId = parentId;
                        input.WeiXinCorpId   = corpId;
                        var o = await _wx_OrganizationUnitAppService.CreateOrganizationUnit(input);

                        userToOrg.OrganizationUnitId = o.Id;
                    }
                    else
                    {//系统有就更新
                        var input = new WX_UpdateOrganizationUnitInput();
                        input.Id             = org.Id;
                        input.DisplayName    = departName;
                        input.ParentId       = parentOrg?.Id;
                        input.WeiXinDepId    = id;
                        input.WeiXinParentId = parentId;
                        input.WeiXinCorpId   = corpId;
                        var o = await _wx_OrganizationUnitAppService.UpdateOrganizationUnit(input);

                        userToOrg.OrganizationUnitId = o.Id;
                    }
                }
                else
                {//系统有就更新
                    var input = new WX_UpdateOrganizationUnitInput();
                    input.Id             = org.Id;
                    input.DisplayName    = departName;
                    input.ParentId       = parentOrg?.Id;
                    input.WeiXinDepId    = id;
                    input.WeiXinParentId = parentId;
                    input.WeiXinCorpId   = corpId;
                    var o = await _wx_OrganizationUnitAppService.UpdateOrganizationUnit(input);

                    userToOrg.OrganizationUnitId = o.Id;
                }

                JObject joUsers = api.GetUserInfoList(id);
                for (int u = 0; u < joUsers["userlist"].Count(); u++)
                {
                    //对应用户账号
                    var userid = joUsers["userlist"][u]["userid"].ToString();
                    //用户姓名
                    var username = joUsers["userlist"][u]["name"].ToString();
                    var email    = joUsers["userlist"][u]["email"].ToString();
                    var mobile   = joUsers["userlist"][u]["mobile"].ToString();

                    var user = await _wx_UserAppService.GetUsersByWeiXinUID(userid);

                    if (user == null)
                    {//没有找到对应的微信账号
                        user = await _wx_UserAppService.GetUsersByWeiUserName(userid);

                        if (user == null)//找对应的用户账号
                        {
                            userToOrg.UserId = await CreateUser(username, email, mobile, userid, "123456");
                        }
                        else
                        {
                            userToOrg.UserId = await UpdateUser(user, username, email, mobile, userid, "123456");
                        }
                    }
                    else
                    {//有就更新账号
                        userToOrg.UserId = await UpdateUser(user, username, email, mobile, userid, "123456");
                    }

                    //更新用户对应的OU
                    await _wx_OrganizationUnitAppService.AddUserToOrganizationUnit(userToOrg);
                }
                DownTXL(api, corpId, joDeps, id);
            }
        }
        public async Task RemoveUserFromOrganizationUnit(UserToOrganizationUnitInput input)
        {
            await UserManager.RemoveFromOrganizationUnitAsync(input.UserId, input.OrganizationUnitId);

            //BackgroundJob.Schedule<IQYWechatAppService>(x => x.UpdateWeChatUser(new EntityDto<long> { Id= input.UserId }), TimeSpan.FromMinutes(5));
        }
Esempio n. 9
0
        public async Task <bool> IsInOrganizationUnit(UserToOrganizationUnitInput input)
        {
            bool flag = await this.UserManager.IsInOrganizationUnitAsync(input.UserId, input.OrganizationUnitId);

            return(flag);
        }