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>()); }