예제 #1
0
        public async Task <OrganizationUnitDto> CreateOrganizationUnit(CreateOrganizationUnitInput input)
        {
            var user = await UserManager.GetUserByIdAsync(input.UserId);

            //2017.10.17:修改组织为宿主级
            var organizationUnit = new OrganizationUnit(null, input.DisplayName, input.ParentId);

            await _organizationUnitManager.CreateAsync(organizationUnit);

            await CurrentUnitOfWork.SaveChangesAsync();

            //todo:生产租户信息
            var tenantId = await TenantManager.CreateWithAdminUserAsync(input.DisplayName,
                                                                        input.DisplayName,
                                                                        organizationUnit.Id,
                                                                        null,
                                                                        user.EmailAddress,
                                                                        null,
                                                                        true,
                                                                        input.EditionId,
                                                                        true,
                                                                        false,
                                                                        null,
                                                                        false,
                                                                        _appUrlService.CreateEmailActivationUrlFormat(input.DisplayName)
                                                                        );

            var result = ObjectMapper.Map <OrganizationUnitDto>(organizationUnit);

            result.TenantId = tenantId;
            return(result);
        }
        public async Task <OrganizationUnitListDto> Create(CreateOrganizationUnitInput input)
        {
            var organizationUnit = new OrganizationUnit(AbpSession.TenantId, input.DisplayName, input.ParentId);
            await _organizationUnitManager.CreateAsync(organizationUnit);

            await CurrentUnitOfWork.SaveChangesAsync();

            return(ObjectMapper.Map <OrganizationUnitListDto>(organizationUnit));
        }
예제 #3
0
        public async Task <OrganizationUnitDto> CreateOrganizationUnit(CreateOrganizationUnitInput input)
        {
            var organizationUnit = new OrganizationUnit(AbpSession.TenantId, input.DisplayName, input.ParentId == 0 ? null : input.ParentId);

            await _organizationUnitManager.CreateAsync(organizationUnit);

            await CurrentUnitOfWork.SaveChangesAsync();

            return(organizationUnit.MapTo <OrganizationUnitDto>());
        }
 public async Task CreateOrUpdateOrganizationUnit(GetOrganizationUnitForEditOutput output)
 {
     if (output.Id.HasValue)
     {
         var input = new UpdateOrganizationUnitInput()
         {
             DisplayName = output.DisplayName,
             Id          = output.Id.Value
         };
         await UpdateOrganizationUnit(input);
     }
     else
     {
         var input = new CreateOrganizationUnitInput()
         {
             DisplayName = output.DisplayName,
             ParentId    = output.ParentId
         };
         await CreateOrganizationUnit(input);
     }
 }
예제 #5
0
        public async Task <OrganizationUnitDto> CreateOrganizationUnit(CreateOrganizationUnitInput input)
        {
            var organizationUnit = new OrganizationUnitExtended(AbpSession.TenantId, input.DisplayName, input.ParentId);

            organizationUnit.ManagerId  = input.ManagerId;
            organizationUnit.HasApprove = input.HasApprove;
            organizationUnit.Locations  = new List <OrganizationLocation>();
            if (input.Locations.Count > 0)
            {
                foreach (var item in input.Locations)
                {
                    organizationUnit.Locations.Add(ObjectMapper.Map <OrganizationLocation>(item));
                }
            }


            await _organizationUnitManager.CreateAsync(organizationUnit);

            await CurrentUnitOfWork.SaveChangesAsync();

            return(ObjectMapper.Map <OrganizationUnitDto>(organizationUnit));
        }
예제 #6
0
 public virtual Task <OrganizationUnitDto> CreateOrganizationUnit(CreateOrganizationUnitInput input)
 {
     return(OrganizationUnitAppService.CreateOrganizationUnit(input));
 }
예제 #7
0
        public virtual async Task <OrganizationUnitOutput> CreateOrganizationUnitAsync(CreateOrganizationUnitInput input)
        {
            await _zeroOrganizationUnitManager.CheckEnableOrganizationUnitManagement();

            if (input.ParentId == null)
            {
                await _zeroOrganizationUnitManager.CheckCanAddRootOrganizationUnitAsync();
            }
            else
            {
                var parent = await _organizationUnitRepository.GetAsync(input.ParentId.Value);

                await _zeroOrganizationUnitManager.CheckCanAddChildOrganizationUnitInStaticOrganizationUnitAsync(parent);

                await _zeroOrganizationUnitManager.CheckMaxOrganizationUnitDepthAsync(parent);
            }

            var displayName = input.DisplayName.Trim();
            var entity      = await _organizationUnitRepository.FirstOrDefaultAsync(o => o.DisplayName == displayName && o.ParentId == input.ParentId);

            if (entity != null)
            {
                throw new UserFriendlyException($"The suborganization { displayName } is duplicate!");
            }

            entity = new ZeroOrganizationUnit {
                DisplayName = displayName, ParentId = input.ParentId
            };
            await _organizationUnitManager.CreateAsync(entity);

            await CurrentUnitOfWork.SaveChangesAsync();

            return(Map <OrganizationUnitOutput>(entity));
        }