Beispiel #1
0
        /// <summary>
        /// 更新租户资料
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task UpdateTenantInfo(TenantInfoEditDto input)
        {
            if (!AbpSession.TenantId.HasValue)
            {
                throw new UserFriendlyException(L("CanNotFindTenant"));
            }

            var tenant = await TenantManager.GetByIdAsync(AbpSession.TenantId.Value);

            if (input.LogoId != tenant.LogoId)
            {
                await _pictureManager.DeleteAsync(tenant.LogoId);

                tenant.LogoId = input.LogoId;
            }

            if (input.BackgroundPictureId != tenant.BackgroundPictureId)
            {
                await _pictureManager.DeleteAsync(tenant.BackgroundPictureId);

                tenant.BackgroundPictureId = input.BackgroundPictureId;
            }

            if (input.TenancyName != tenant.Name)
            {
                var user = await _userManager.UserStore.FindMainUser4PlatformByTenantIdAsync(tenant.Id);

                user.UserName           = input.TenancyName;
                user.NormalizedUserName = input.TenancyName.ToLower();
                await _userManager.UpdateAsync(user);

                await TenantManager.ChangeTenantNameAsync(tenant, input.TenancyName);
            }

            tenant.Description = input.Description;
            tenant.Tagline     = input.Tagline;
            await TenantManager.UpdateAsync(tenant);
        }