Beispiel #1
0
        public async Task ValidateOrganizationUnitAsync(WX_OrganizationUnit organizationUnit)
        {
            var siblings = (await FindChildrenAsync(organizationUnit.ParentId))
                           .Where(ou => ou.Id != organizationUnit.Id)
                           .ToList();

            if (siblings.Any(ou => ou.DisplayName == organizationUnit.DisplayName))
            {
                throw new UserFriendlyException(L("OrganizationUnitDuplicateDisplayNameWarning", organizationUnit.DisplayName));
            }
        }
        /// <summary>
        /// 创建OU新部门
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <WX_OrganizationUnitDto> CreateOrganizationUnit(WX_CreateOrganizationUnitInput input)
        {
            //var organizationUnit = new EntityOrganizationUnitWeiXin(AbpSession.TenantId, input.DisplayName, input.ParentId);

            var wxOrganizationUnit = new WX_OrganizationUnit();

            wxOrganizationUnit.TenantId       = AbpSession.TenantId;
            wxOrganizationUnit.DisplayName    = input.DisplayName;
            wxOrganizationUnit.ParentId       = input.ParentId;
            wxOrganizationUnit.WeiXinDepId    = input.WeiXinDepId;
            wxOrganizationUnit.WeiXinParentId = input.WeiXinParentId;
            wxOrganizationUnit.WeiXinCorpId   = input.WeiXinCorpId;
            wxOrganizationUnit.Code           = await _weixinOrganizationUnitManager.GetNextChildCodeAsync(wxOrganizationUnit.ParentId);

            await _weixinOrganizationUnitManager.ValidateOrganizationUnitAsync(wxOrganizationUnit);

            await _weixinOrganizationUnitRepository.InsertAsync(wxOrganizationUnit);

            //await _organizationUnitManager.CreateAsync(organizationUnit);
            await CurrentUnitOfWork.SaveChangesAsync();

            return(wxOrganizationUnit.MapTo <WX_OrganizationUnitDto>());
        }