コード例 #1
0
 public virtual async Task CreateAsync(SettingInfo settingInfo)
 {
     using (_unitOfWorkManager.Current.SetTenantId(settingInfo.TenantId))
     {
         using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
         {
             await _settingRepository.InsertAsync(settingInfo.ToSetting());
             await _unitOfWorkManager.Current.SaveChangesAsync();
         }
     }
 }
コード例 #2
0
ファイル: SettingStore.cs プロジェクト: dazyzsy/module-zero
        public virtual async Task UpdateAsync(SettingInfo settingInfo)
        {
            var setting = await _settingRepository.FirstOrDefaultAsync(
                s => s.TenantId == settingInfo.TenantId && s.UserId == settingInfo.UserId && s.Name == settingInfo.Name
                );

            if (setting != null)
            {
                setting.Value = settingInfo.Value;
            }
        }
コード例 #3
0
 public virtual async Task DeleteAsync(SettingInfo settingInfo)
 {
     using (_unitOfWorkManager.Current.SetTenantId(settingInfo.TenantId))
     {
         using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
         {
             await _settingRepository.DeleteAsync(
             s => s.UserId == settingInfo.UserId && s.Name == settingInfo.Name && s.TenantId == settingInfo.TenantId
             );
             await _unitOfWorkManager.Current.SaveChangesAsync();
         }
     }
 }
コード例 #4
0
ファイル: SettingStore.cs プロジェクト: dazyzsy/module-zero
 public virtual async Task DeleteAsync(SettingInfo settingInfo)
 {
     await _settingRepository.DeleteAsync(
         s => s.TenantId == settingInfo.TenantId && s.UserId == settingInfo.UserId && s.Name == settingInfo.Name
         );
 }
コード例 #5
0
        #pragma warning restore 1998

        #pragma warning disable 1998
        /// <inheritdoc/>
        public async Task UpdateAsync(SettingInfo setting)
        {
            //TODO: Call should be async and use await
            LogHelper.Logger.Warn("ISettingStore is not implemented, using DefaultConfigSettingStore which does not support UpdateAsync.");
        }
コード例 #6
0
 /// <inheritdoc/>
 public async Task UpdateAsync(SettingInfo setting)
 {
     LogHelper.Logger.Warn("ISettingStore is not implemented, using DefaultConfigSettingStore which does not support UpdateAsync.");
 }
コード例 #7
0
 /// <inheritdoc/>
 public void Delete(SettingInfo setting)
 {
 }
コード例 #8
0
        /// <summary>
        /// 插入或更新或删除设置值-异步
        /// </summary>
        /// <param name="name">设置名称</param>
        /// <param name="value"></param>
        /// <param name="tenantId">租户Id</param>
        /// <param name="userId">用户Id</param>
        /// <returns></returns>
        private async Task<SettingInfo> InsertOrUpdateOrDeleteSettingValueAsync(string name, string value, int? tenantId, long? userId)
        {
            if (tenantId.HasValue && userId.HasValue)
            {
                //租户Id和用户Id不能同时设置
                throw new ApplicationException("Both of tenantId and userId can not be set!");
            }

            var settingDefinition = _settingDefinitionManager.GetSettingDefinition(name);
            var settingValue = await SettingStore.GetSettingOrNullAsync(tenantId, userId, name);

            //Determine defaultValue
            //确定默认值
            var defaultValue = settingDefinition.DefaultValue;

            if (settingDefinition.IsInherited)
            {
                //For Tenant and User, Application's value overrides Setting Definition's default value.
                //租户和用户,应用程序的值会重写设置定义的默认值。
                if (tenantId.HasValue || userId.HasValue)
                {
                    var applicationValue = await GetSettingValueForApplicationOrNullAsync(name);
                    if (applicationValue != null)
                    {
                        defaultValue = applicationValue.Value;
                    }
                }

                //For User, Tenants's value overrides Application's default value.
                //用户、租户的值会重写应用程序的默认值。
                if (userId.HasValue && AbpSession.TenantId.HasValue)
                {
                    var tenantValue = await GetSettingValueForTenantOrNullAsync(AbpSession.TenantId.Value, name);
                    if (tenantValue != null)
                    {
                        defaultValue = tenantValue.Value;
                    }
                }
            }

            //No need to store on database if the value is the default value
            //如果值是默认值,则不需要再数据库中存储
            if (value == defaultValue)
            {
                if (settingValue != null)
                {
                    await SettingStore.DeleteAsync(settingValue);
                }

                return null;
            }

            //If it's not default value and not stored on database, then insert it
            //如果不是默认值并且不存储在数据库中,然后插入它
            if (settingValue == null)
            {
                settingValue = new SettingInfo
                {
                    TenantId = tenantId,
                    UserId = userId,
                    Name = name,
                    Value = value
                };

                await SettingStore.CreateAsync(settingValue);
                return settingValue;
            }

            //It's same value in database, no need to update
            //在数据库中同样的值,不需要更新
            if (settingValue.Value == value)
            {
                return settingValue;
            }

            //Update the setting on database.
            //更新数据库的设置。
            settingValue.Value = value;
            await SettingStore.UpdateAsync(settingValue);

            return settingValue;
        }
コード例 #9
0
#pragma warning restore 1998

#pragma warning disable 1998
        /// <summary>
        /// 异步更新
        /// </summary>
        /// <param name="setting">设置信息</param>
        /// <returns></returns>
        public async Task UpdateAsync(SettingInfo setting)
        {
            //TODO: Call should be async and use await
            LogHelper.Logger.Warn("ISettingStore is not implemented, using DefaultConfigSettingStore which does not support UpdateAsync.");
        }
コード例 #10
0
ファイル: SettingStore.cs プロジェクト: dym0080/ABPstudy
 public virtual async Task CreateAsync(SettingInfo settingInfo)
 {
     await _settingRepository.InsertAsync(settingInfo.ToSetting());
 }
コード例 #11
0
ファイル: SettingStore.cs プロジェクト: dym0080/ABPstudy
 public virtual async Task DeleteAsync(SettingInfo settingInfo)
 {
     await _settingRepository.DeleteAsync(
         s => s.TenantId == settingInfo.TenantId && s.UserId == settingInfo.UserId && s.Name == settingInfo.Name
         );
 }
コード例 #12
0
 /// <inheritdoc/>
 public async Task UpdateAsync(SettingInfo setting)
 {
 }
コード例 #13
0
 /// <inheritdoc/>
 public async Task CreateAsync(SettingInfo setting)
 {
 }
コード例 #14
0
 /// <inheritdoc/>
 public async Task DeleteAsync(SettingInfo setting)
 {
 }
コード例 #15
0
 public async Task CreateAsync(SettingInfo setting)
 {
     _settings.Add(setting);
 }
コード例 #16
0
 public virtual void Create(SettingInfo settingInfo)
 {
     _settingRepository.Insert(settingInfo.ToSetting());
 }
コード例 #17
0
 /// <inheritdoc/>
 public void Delete(SettingInfo setting)
 {
 }
コード例 #18
0
 /// <inheritdoc/>
 public void Create(SettingInfo setting)
 {
 }
コード例 #19
0
 /// <inheritdoc/>
 public void Create(SettingInfo setting)
 {
 }
コード例 #20
0
 /// <inheritdoc/>
 public void Update(SettingInfo setting)
 {
 }
コード例 #21
0
 /// <inheritdoc/>
 public void Update(SettingInfo setting)
 {
 }
コード例 #22
0
 /// <inheritdoc/>
 public Task UpdateAsync(SettingInfo setting)
 {
     LogHelper.Logger.Warn("ISettingStore is not implemented, using DefaultConfigSettingStore which does not support UpdateAsync.");
     return(AbpTaskCache.CompletedTask);
 }
コード例 #23
0
 /// <inheritdoc/>
 public void Update(SettingInfo setting)
 {
     LogHelper.Logger.Warn("ISettingStore is not implemented, using DefaultConfigSettingStore which does not support UpdateAsync.");
 }
コード例 #24
0
        public virtual async Task UpdateAsync(SettingInfo settingInfo)
        {
            using (_unitOfWorkManager.Current.SetTenantId(settingInfo.TenantId))
            {
                using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
                {
                    var setting = await _settingRepository.FirstOrDefaultAsync(
                        s => s.TenantId == settingInfo.TenantId &&
                             s.UserId == settingInfo.UserId &&
                             s.Name == settingInfo.Name
                        );

                    if (setting != null)
                    {
                        setting.Value = settingInfo.Value;
                    }

                    await _unitOfWorkManager.Current.SaveChangesAsync();
                }
            }
        }
コード例 #25
0
 public void Create(SettingInfo setting)
 {
     _settings.Add(setting);
 }
コード例 #26
0
        private async Task<SettingInfo> InsertOrUpdateOrDeleteSettingValueAsync(string name, string value, Guid? userId)
        {
            if (userId.HasValue)
            {
                throw new ApplicationException("Both of tenantId and userId can not be set!");
            }

            var settingDefinition = _settingDefinitionManager.GetSettingDefinition(name);
            var settingValue = await SettingStore.GetSettingOrNullAsync(userId, name);

            //Determine defaultValue
            var defaultValue = settingDefinition.DefaultValue;

            if (settingDefinition.IsInherited)
            {
                //For Tenant and User, Application's value overrides Setting Definition's default value.
                if (userId.HasValue)
                {
                    var applicationValue = await GetSettingValueForApplicationOrNullAsync(name);
                    if (applicationValue != null)
                    {
                        defaultValue = applicationValue.Value;
                    }
                }
            }

            //No need to store on database if the value is the default value
            if (value == defaultValue)
            {
                if (settingValue != null)
                {
                    await SettingStore.DeleteAsync(settingValue);
                }

                return null;
            }

            //If it's not default value and not stored on database, then insert it
            if (settingValue == null)
            {
                settingValue = new SettingInfo
                {
                    UserId = userId,
                    Name = name,
                    Value = value
                };

                await SettingStore.CreateAsync(settingValue);
                return settingValue;
            }

            //It's same value in database, no need to update
            if (settingValue.Value == value)
            {
                return settingValue;
            }

            //Update the setting on database.
            settingValue.Value = value;
            await SettingStore.UpdateAsync(settingValue);

            return settingValue;
        }
コード例 #27
0
 public void Delete(SettingInfo setting)
 {
     _settings.RemoveAll(s => s.TenantId == setting.TenantId && s.UserId == setting.UserId && s.Name == setting.Name);
 }
コード例 #28
0
ファイル: SettingStore.cs プロジェクト: dazyzsy/module-zero
 public virtual async Task CreateAsync(SettingInfo settingInfo)
 {
     await _settingRepository.InsertAsync(settingInfo.ToSetting());
 }
コード例 #29
0
 public void Update(SettingInfo setting)
 {
     var s = GetSettingOrNull(setting.TenantId, setting.UserId, setting.Name);
     if (s != null)
     {
         s.Value = setting.Value;
     }
 }
コード例 #30
0
 public async Task DeleteAsync(SettingInfo setting)
 {
     _settings.RemoveAll(s => s.TenantId == setting.TenantId && s.UserId == setting.UserId && s.Name == setting.Name);
 }
コード例 #31
0
        private async Task <SettingInfo> InsertOrUpdateOrDeleteSettingValueAsync(string name, string value, int?tenantId, long?userId)
        {
            if (tenantId.HasValue && userId.HasValue)
            {
                throw new ApplicationException("Both of tenantId and userId can not be set!");
            }

            var settingDefinition = _settingDefinitionManager.GetSettingDefinition(name);
            var settingValue      = await SettingStore.GetSettingOrNullAsync(tenantId, userId, name);

            //Determine defaultValue
            var defaultValue = settingDefinition.DefaultValue;

            if (settingDefinition.IsInherited)
            {
                //For Tenant and User, Application's value overrides Setting Definition's default value.
                if (tenantId.HasValue || userId.HasValue)
                {
                    var applicationValue = GetSettingValueForApplicationOrNull(name);
                    if (applicationValue != null)
                    {
                        defaultValue = applicationValue.Value;
                    }
                }

                //For User, Tenants's value overrides Application's default value.
                if (userId.HasValue && AbpSession.TenantId.HasValue)
                {
                    var tenantValue = await GetSettingValueForTenantOrNull(AbpSession.TenantId.Value, name);

                    if (tenantValue != null)
                    {
                        defaultValue = tenantValue.Value;
                    }
                }
            }

            //No need to store on database if the value is the default value
            if (value == defaultValue)
            {
                if (settingValue != null)
                {
                    await SettingStore.DeleteAsync(settingValue);
                }

                return(null);
            }

            //If it's not default value and not stored on database, then insert it
            if (settingValue == null)
            {
                settingValue = new SettingInfo
                {
                    TenantId = tenantId,
                    UserId   = userId,
                    Name     = name,
                    Value    = value
                };

                await SettingStore.CreateAsync(settingValue);

                return(settingValue);
            }

            //It's same value in database, no need to update
            if (settingValue.Value == value)
            {
                return(settingValue);
            }

            //Update the setting on database.
            settingValue.Value = value;
            await SettingStore.UpdateAsync(settingValue);

            return(settingValue);
        }
コード例 #32
0
 public async Task UpdateAsync(SettingInfo setting)
 {
     var s = await GetSettingOrNullAsync(setting.TenantId, setting.UserId, setting.Name);
     if (s != null)
     {
         s.Value = setting.Value;
     }
 }
コード例 #33
0
 public virtual void Delete(SettingInfo settingInfo)
 {
     _settingRepository
     .Delete(s => s.TenantId == settingInfo.TenantId && s.UserId == settingInfo.UserId && s.Name == settingInfo.Name);
 }