コード例 #1
0
        public virtual async Task UpdateDefaultConnectionStringAsync(Guid id, string defaultConnectionString)
        {
            var tenant = await TenantRepository.GetAsync(id);

            tenant.SetDefaultConnectionString(defaultConnectionString);
            await TenantRepository.UpdateAsync(tenant);
        }
コード例 #2
0
        public virtual async Task DeleteDefaultConnectionStringAsync(Guid id)
        {
            var tenant = await TenantRepository.GetAsync(id);

            tenant.RemoveDefaultConnectionString();
            await TenantRepository.UpdateAsync(tenant);
        }
コード例 #3
0
        public virtual async Task DeleteConnectionStringAsync(TenantConnectionGetByNameInputDto tenantConnectionGetByName)
        {
            var tenant = await TenantRepository.GetAsync(tenantConnectionGetByName.Id);

            tenant.RemoveConnectionString(tenantConnectionGetByName.Name);
            await TenantRepository.UpdateAsync(tenant);
        }
コード例 #4
0
ファイル: TenantAppService.cs プロジェクト: zjc-china/abp
 public virtual async Task<TenantDto> UpdateAsync(Guid id, TenantUpdateDto input)
 {
     var tenant = await TenantRepository.GetAsync(id);
     await TenantManager.ChangeNameAsync(tenant, input.Name);
     input.MapExtraPropertiesTo(tenant);
     await TenantRepository.UpdateAsync(tenant);
     return ObjectMapper.Map<Tenant, TenantDto>(tenant);
 }
コード例 #5
0
        public virtual async Task UpdateAsync(TTenant tenant)
        {
            if (await TenantRepository.FirstOrDefaultAsync(t => t.TenancyName == tenant.TenancyName && t.Id != tenant.Id) != null)
            {
                throw new UserFriendlyException(string.Format(L("TenancyNameIsAlreadyTaken"), tenant.TenancyName));
            }

            await TenantRepository.UpdateAsync(tenant);
        }
コード例 #6
0
ファイル: TenantAppService.cs プロジェクト: jixziyi/abp
        public async Task <TenantDto> UpdateAsync(Guid id, TenantUpdateDto input)
        {
            var tenant = await TenantRepository.GetAsync(id);

            await TenantManager.ChangeNameAsync(tenant, input.Name);

            await TenantRepository.UpdateAsync(tenant);

            return(ObjectMapper.Map <Tenant, TenantDto>(tenant));
        }
コード例 #7
0
    public virtual async Task <TenantDto> UpdateAsync(string id, TenantEditInput input)
    {
        var tenant = await TenantRepository.GetAsync(id);

        await TenantManager.ChangeNameAsync(tenant, input.Name);

        await TenantRepository.UpdateAsync(tenant);

        return(tenant.MapTo <TenantDto>());
    }
コード例 #8
0
        public virtual async Task <SaasTenantDto> UpdateAsync(Guid id, SaasTenantUpdateDto input)
        {
            var tenant = await TenantRepository.GetAsync(id);

            await TenantManager.ChangeNameAsync(tenant, input.Name);

            tenant.SetEdition(input.EditionId);
            await TenantRepository.UpdateAsync(tenant);

            return(ObjectMapper.Map <SaasTenant, SaasTenantDto>(tenant));
        }
コード例 #9
0
        /// <summary>
        /// 更新商户
        /// </summary>
        /// <param name="tenant">商户对象</param>
        /// <returns></returns>
        public async Task <IdentityResult> UpdateAsync(TTenant tenant)
        {
            if (await TenantRepository.FirstOrDefaultAsync(t => t.TenancyName == tenant.TenancyName && t.Id != tenant.Id) != null)
            {
                return(AbpIdentityResult.Failed(string.Format(L("TenancyNameIsAlreadyTaken"), tenant.TenancyName)));
            }

            await TenantRepository.UpdateAsync(tenant);

            return(IdentityResult.Success);
        }
コード例 #10
0
        public virtual async Task <TenantDto> UpdateAsync(Guid id, TenantUpdateDto input)
        {
            var tenant = await TenantRepository.GetAsync(id);

            await TenantManager.ChangeNameAsync(tenant, input.Name);

            tenant.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
            input.MapExtraPropertiesTo(tenant);

            await TenantRepository.UpdateAsync(tenant);

            return(ObjectMapper.Map <Tenant, TenantDto>(tenant));
        }
コード例 #11
0
        public virtual async Task DeleteConnectionStringAsync(Guid id, string name)
        {
            var tenant = await TenantRepository.GetAsync(id);

            tenant.RemoveConnectionString(name);

            var updateEventData = new UpdateEventData
            {
                Id         = tenant.Id,
                OriginName = tenant.Name,
                Name       = tenant.Name
            };
            await EventBus.PublishAsync(updateEventData);

            await TenantRepository.UpdateAsync(tenant);
        }
コード例 #12
0
        public virtual async Task <TenantDto> UpdateAsync(Guid id, TenantUpdateDto input)
        {
            var tenant = await TenantRepository.GetAsync(id, false);

            var updateEventData = new UpdateEventData
            {
                Id         = tenant.Id,
                OriginName = tenant.Name,
                Name       = input.Name
            };
            await TenantManager.ChangeNameAsync(tenant, input.Name);

            input.MapExtraPropertiesTo(tenant);
            await TenantRepository.UpdateAsync(tenant);

            await EventBus.PublishAsync(updateEventData);

            return(ObjectMapper.Map <Tenant, TenantDto>(tenant));
        }
コード例 #13
0
ファイル: Functions.cs プロジェクト: aandino-dev/saas-demo
        // This function will get triggered/executed when a new message is written
        // on an Azure Queue called queue.
        public static async Task ProcessQueueMessage([QueueTrigger("tenant-queue")] Tenant tenant)
        {
            TenantRepository tenantRepo = new TenantRepository(tenant.TenantID);

            data.ITenant t = await tenantRepo.GetAsync();

            if (t == null || string.IsNullOrEmpty(t.Server) == false || string.IsNullOrEmpty(t.Database) == false)
            {
                Console.WriteLine("[{0}] Tenant already configured or something when wrong.", tenant.TenantID);
                return;
            }


            var credentials = SdkContext.AzureCredentialsFactory
                              .FromServicePrincipal(CloudConfigurationManager.GetSetting("az:clientId"),     //clientId,
                                                    CloudConfigurationManager.GetSetting("az:clientSecret"), //clientSecret,
                                                    CloudConfigurationManager.GetSetting("az:tenantId"),     //tenantId,
                                                    AzureEnvironment.AzureGlobalCloud);

            var azure = Microsoft.Azure.Management.Fluent.Azure
                        .Configure()
                        .Authenticate(credentials)
                        .WithDefaultSubscription();

            string startAddress = "0.0.0.0";
            string endAddress   = "255.255.255.255";

            var servers = await azure.SqlServers.ListAsync();

            var avaibleServers = servers.Where(x => x.Databases.List().Count < 150 && x.ResourceGroupName == "ssas-demo");

            ISqlServer sqlServer;

            if (avaibleServers.Any())
            {
                sqlServer = avaibleServers.FirstOrDefault();
            }
            else
            {
                string sqlServerName = SdkContext.RandomResourceName("saas-", 8);
                // Create the SQL server instance
                sqlServer = azure.SqlServers.Define(sqlServerName)
                            .WithRegion(Region.USEast)
                            .WithExistingResourceGroup("ssas-demo")
                            .WithAdministratorLogin(CloudConfigurationManager.GetSetting("sqlserver:username"))
                            .WithAdministratorPassword(CloudConfigurationManager.GetSetting("sqlserver:password"))
                            .WithNewFirewallRule(startAddress, endAddress)
                            .Create();
            }

            string dbName = SdkContext.RandomResourceName("saas-", 8);

            // Create the database
            ISqlDatabase sqlDb = sqlServer.Databases.Define(dbName)
                                 .WithEdition(DatabaseEditions.Standard)
                                 .WithServiceObjective(ServiceObjectiveName.S0)
                                 .Create();


            Console.WriteLine(sqlServer.FullyQualifiedDomainName);
            Console.WriteLine(sqlDb.Name);

            await tenantRepo.UpdateAsync(sqlDb.SqlServerName, sqlDb.Name);

            if (string.IsNullOrEmpty(tenant.Email) == false)
            {
                await SendEmailNotification(tenant.Email, tenant.Organization);
            }
        }