public void IncrementalBuild_WhenBundleTimestampChanges_CopiesNewFile() { var group = Settings.CreateGroup("MyTestGroup", true, false, false, null, typeof(BundledAssetGroupSchema)); var spriteEntry = Settings.CreateOrMoveEntry(CreateTexture($"{m_SingleTestAssetFolder}/testTexture.png"), group, false, false); Settings.profileSettings.SetValue(Settings.activeProfileId, AddressableAssetSettings.kLocalBuildPath, m_SingleTestBuildFolder); Settings.profileSettings.SetValue(Settings.activeProfileId, AddressableAssetSettings.kLocalLoadPath, "Library/LocalLoadPath"); IDataBuilder b = GetBuilderOfType(Settings, typeof(BuildScriptPackedMode)); b.BuildData <AddressableAssetBuildResult>(new AddressablesDataBuilderInput(Settings)); string[] buildFiles = Directory.GetFiles(m_SingleTestBuildFolder); byte[] initialBundleBytes = File.ReadAllBytes(buildFiles[0]); File.Delete(buildFiles[0]); File.WriteAllText(buildFiles[0], "content"); File.SetLastWriteTime(buildFiles[0], new DateTime(2019, 1, 1)); b.BuildData <AddressableAssetBuildResult>(new AddressablesDataBuilderInput(Settings)); Assert.AreEqual(1, buildFiles.Length, "There should only be one bundle file in the build output folder"); CollectionAssert.AreEqual(initialBundleBytes, File.ReadAllBytes(buildFiles[0])); }
public static void BuildContentAndPlayer() { AddressableAssetSettings settings = AddressableAssetSettingsDefaultObject.Settings; settings.activeProfileId = settings.profileSettings.GetProfileId(profile_name); IDataBuilder builder = AssetDatabase.LoadAssetAtPath <ScriptableObject>(build_script) as IDataBuilder; settings.ActivePlayerDataBuilderIndex = settings.DataBuilders.IndexOf((ScriptableObject)builder); AddressableAssetSettings.BuildPlayerContent(out AddressablesPlayerBuildResult result); if (!string.IsNullOrEmpty(result.Error)) { throw new Exception(result.Error); } BuildReport buildReport = BuildPipeline.BuildPlayer(EditorBuildSettings.scenes, "d:/build/winApp.exe", EditorUserBuildSettings.activeBuildTarget, BuildOptions.None); if (buildReport.summary.result != BuildResult.Succeeded) { throw new Exception(buildReport.summary.ToString()); } }
public TemplateConfiguration(Type template_type, IJsonCollectionConfiguration configuration, IDataBuilder data_builder, TDataSource data_source) { TemplateType = template_type; Configuration = configuration; DataBuilder = data_builder; DataSource = data_source; CustomsDataBuilder = new List <Func <TDataSource, Data> >(); }
public static IDataBuilder AddAccessorService(this IDataBuilder builder, Type serviceType, Type implementationTypeDefinition) { builder.NotNull(nameof(builder)); return(builder.AddGenericServiceByPopulateAccessorTypeParameters(serviceType, implementationTypeDefinition)); }
public void EnqueueBuilderForInstance(ITerminalDescriptor descriptor, IDataBuilder <TData> builder) { if (!BuildersByDescriptor.ContainsKey(descriptor)) { BuildersByDescriptor[descriptor] = new List <IDataBuilder <TData> >(); } BuildersByDescriptor[descriptor].Add(builder); }
private void InitialiseLocalDatabase() { IDataStorageService dataStorage = container.GetInstance <IDataStorageService>(); using (IDataBuilder modelBuilder = dataStorage.GetBuilder()) { modelBuilder.BuildStorageAsync(); } }
public static IDataBuilder AddAccessorAspect(this IDataBuilder builder, Type serviceType, Type implementationTypeDefinition) { builder.NotNull(nameof(builder)); return(builder.AddGenericServiceByPopulateAccessorTypeParameters(serviceType, implementationTypeDefinition, (type, descriptor) => type.MakeGenericType(descriptor.GenId.ArgumentType, descriptor.CreatedBy.ArgumentType), addEnumerable: true)); }
private static IDataBuilder AddInternalAccessorServices(this IDataBuilder builder) { builder.AddMigrateAccessorAspect(typeof(TabulationMigrateDbContextAccessorAspect <, , , , , , ,>)); builder.AddSaveChangesAccessorAspect(typeof(AuditSaveChangesDbContextAccessorAspect <, , , , , , ,>)); builder.AddMigrationAccessorService(typeof(MigrationAccessorService <, , , , , , ,>)); builder.AddMultiTenantAccessorService(typeof(MultiTenancyAccessorService <, , , , , , ,>)); return(builder); }
/// <summary> /// 设置数据构建器。 /// </summary> /// <param name="memoryCache">给定的 <see cref="IMemoryCache"/>。</param> /// <param name="builder">给定的 <see cref="IDataBuilder"/>。</param> /// <returns>返回 <see cref="IMemoryCache"/>。</returns> public static IMemoryCache SetDataBuilder(this IMemoryCache memoryCache, IDataBuilder builder) { builder.NotNull(nameof(builder)); memoryCache.NotNull(nameof(memoryCache)); memoryCache.Set(nameof(IDataBuilder), builder); return(memoryCache); }
public async Task ChangeBuilderAsync(ICollection <TData> collection, IDataBuilder <TData> builder) { if (!IsCollectionRegistered(collection)) { throw new InvalidOperationException("Cannot change the builder associated with a collection that has not been registered"); } BuilderByCollection[collection] = builder; await BuildCollectionAsync(collection); }
public AssetReadyConsumer(IAssetManager assetManager, IParameterHelper parameterHelper, IBus bus, IMailHelper mailHelper, IDataBuilder dataBuilder, PasswordHelper passwordHelper) { this.assetManager = assetManager; this.parameterHelper = parameterHelper; this.bus = bus; this.mailHelper = mailHelper; this.dataBuilder = dataBuilder; this.passwordHelper = passwordHelper; }
public OrderManager(StatusWechsler statusWechsler, IOrderDataAccess sqlDataAccess, IUserDataAccess userAccess, IParameterHelper parameterHelper, IBus bus, IMailHelper mailHelper, IDataBuilder dataBuilder) { this.statusWechsler = statusWechsler; this.sqlDataAccess = sqlDataAccess; this.userAccess = userAccess; this.parameterHelper = parameterHelper; this.bus = bus; this.mailHelper = mailHelper; this.dataBuilder = dataBuilder; }
public override IDataBuilder AddProviderServices(IDataBuilder builder) { builder.AddSqlite(options => { }); //services.Configure<RepositoryOptions>(options => //{ // options.DbLinks.Add(new DbLink.DbLinkItem() { Name = "test", DbType = "Sqlite", ConnectionString = "Data Source=test.db" }); //}); builder.AddDbLink("test", "Sqlite", "Data Source=test.db"); return(builder); }
public override IDataBuilder AddProviderServices(IDataBuilder builder) { builder.AddSqlServer(options => { }); //builder.Services.Configure<RepositoryOptions>(options => //{ // options.DbLinks.Add(new DbLink.DbLinkItem() { Name = "test", DbType = "SqlServer", ConnectionString = "Server=(localdb)\\mssqllocaldb;Database=Harry.Data.SqlServer.Test;Trusted_Connection=True;MultipleActiveResultSets=true" }); //}); builder.AddDbLink("test", "SqlServer", "Server=(localdb)\\mssqllocaldb;Database=Harry.Data.SqlServer.Test;Trusted_Connection=True;MultipleActiveResultSets=true"); return(builder); }
//--- Contructors --- public PayloadBuilder(RollbarConfiguration configuration, IDataBuilder dataBuilder) { if (configuration == null) { throw new ArgumentNullException("configuration"); } if (dataBuilder == null) { throw new ArgumentNullException("dataBuilder"); } _configuration = configuration; _dataBuilder = dataBuilder; }
static void setBuilder(IDataBuilder builder) { int index = settings.DataBuilders.IndexOf((ScriptableObject)builder); if (index > 0) { settings.ActivePlayerDataBuilderIndex = index; } else { Debug.LogWarning($"{builder} must be added to the " + $"DataBuilders list before it can be made " + $"active. Using last run builder instead."); } }
public static IDataBuilder AddDbLink(this IDataBuilder builder, Func <IServiceProvider, IDbLinkProvider> func) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (func == null) { throw new ArgumentNullException(nameof(func)); } builder.Services.AddSingleton <IDbLinkProvider>(func); return(builder); }
void RunBuilder(AddressableAssetSettings settings) { var buildContext = new AddressablesDataBuilderInput(settings); buildContext.RuntimeSettingsFilename = "settings" + m_UniqueTestName + ".json"; buildContext.RuntimeCatalogFilename = "catalog" + m_UniqueTestName + ".json"; buildContext.PathFormat = "{0}Library/com.unity.addressables/{1}_" + m_UniqueTestName + ".json"; if (BuildScriptMode == TestBuildScriptMode.PackedPlaymode) { IDataBuilder packedModeBuilder = GetBuilderOfType(settings, typeof(BuildScriptPackedMode)); packedModeBuilder.BuildData <AddressableAssetBuildResult>(buildContext); } IDataBuilder b = GetBuilderOfType(settings, GetBuildScriptTypeFromMode(BuildScriptMode)); b.BuildData <AddressableAssetBuildResult>(buildContext); }
public DownloadAssetConsumer(ICacheHelper cacheHelper, IBus bus, IRequestClient <DoesExistInCacheRequest, DoesExistInCacheResponse> doesExistInCacheClient, IParameterHelper parameterHelper, IMailHelper mailHelper, IDataBuilder dataBuilder, PasswordHelper passwordHelper) { this.cacheHelper = cacheHelper; this.bus = bus; this.doesExistInCacheClient = doesExistInCacheClient; this.parameterHelper = parameterHelper; this.mailHelper = mailHelper; this.dataBuilder = dataBuilder; this.passwordHelper = passwordHelper; }
private static IDataBuilder AddDesignTimeServices <TDbContext>(this IDataBuilder builder) where TDbContext : DbContext, IAccessor { builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <ICurrentDbContext>()); builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <IDatabaseProvider>()); builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <IDbContextOptions>()); builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <IHistoryRepository>()); builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <IMigrationsAssembly>()); builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <IMigrationsIdGenerator>()); builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <IMigrationsModelDiffer>()); builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <IMigrator>()); //builder.Services.AddTransient(sp => sp.GetRequiredService<TDbContext>().GetService<IRelationalTypeMappingSource>()); builder.Services.AddTransient(sp => sp.GetRequiredService <TDbContext>().GetService <IModel>()); return(builder); }
protected virtual void RunBuilder(AddressableAssetSettings settings) { var buildContext = new AddressablesDataBuilderInput(settings); buildContext.RuntimeSettingsFilename = "settings" + m_UniqueTestName + ".json"; buildContext.RuntimeCatalogFilename = "catalog" + m_UniqueTestName + ".json"; buildContext.PathFormat = "{0}" + Addressables.LibraryPath + "{1}_" + m_UniqueTestName + ".json"; if (BuildScriptMode == TestBuildScriptMode.PackedPlaymode) { IDataBuilder packedModeBuilder = GetBuilderOfType(settings, typeof(BuildScriptPackedMode)); packedModeBuilder.BuildData <AddressableAssetBuildResult>(buildContext); } IDataBuilder b = GetBuilderOfType(settings, GetBuildScriptTypeFromMode(BuildScriptMode)); b.BuildData <AddressableAssetBuildResult>(buildContext); PlayerPrefs.SetString(Addressables.kAddressablesRuntimeDataPath + m_UniqueTestName, PlayerPrefs.GetString(Addressables.kAddressablesRuntimeDataPath, "")); }
public static bool BuildAddressables() { getSettingsObject(settings_asset); setProfile(profile_name); IDataBuilder builderScript = AssetDatabase.LoadAssetAtPath <ScriptableObject>(build_script) as IDataBuilder; if (builderScript == null) { Debug.LogError(build_script + " couldn't be found or isn't a build script."); return(false); } setBuilder(builderScript); return(buildAddressableContent()); }
public static IDataBuilder AddSystemDbLink(this IDataBuilder builder, Action <SystemDbLinkOptions> optionsBuilder = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <IDbLinkProvider, SystemDbLinkProvider>()); if (optionsBuilder != null) { builder.Services.Configure(optionsBuilder); } return(builder); }
public static IDataBuilder Configure(this IDataBuilder builder, Action <RepositoryOptions> optionsAction) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (optionsAction == null) { throw new ArgumentNullException(nameof(optionsAction)); } builder.Services.Configure <RepositoryOptions>(options => { optionsAction?.Invoke(options); }); return(builder); }
public static IDataBuilder AddAccessor <TAccessor, TImplementation>(this IDataBuilder builder, Action <ITenant, DbContextOptionsBuilder> setupAction, int poolSize = 128) where TAccessor : class, IAccessor where TImplementation : DbContext, TAccessor { builder.NotNull(nameof(builder)); setupAction.NotNull(nameof(setupAction)); var mapper = AccessorTypeParameterMappingHelper.ParseMapper(typeof(TImplementation)); builder.SetProperty(p => p.AccessorTypeParameterMapper, mapper); if (poolSize > 0) { builder.Services.AddDbContextPool <TAccessor, TImplementation>(ConfigureOptionsBuilder, poolSize); } else { builder.Services.AddDbContext <TAccessor, TImplementation>(ConfigureOptionsBuilder); } builder.Services.TryAddScoped(sp => (TImplementation)sp.GetRequiredService <TAccessor>()); return(builder .AddInternalAccessorServices() .AddDesignTimeServices <TImplementation>()); // ConfigureOptionsBuilder void ConfigureOptionsBuilder(IServiceProvider applicationServiceProvider, DbContextOptionsBuilder optionsBuilder) { optionsBuilder.ReplaceServices(); if (builder.MemoryCache.IsNull()) { var memoryCache = applicationServiceProvider.GetRequiredService <IMemoryCache>(); memoryCache.SetDataBuilder(builder); builder.SetProperty(p => p.MemoryCache, memoryCache); optionsBuilder.UseMemoryCache(memoryCache); } setupAction.Invoke((builder.Dependency as DataBuilderDependency).Options.DefaultTenant, optionsBuilder); } }
public VecteurController(IVecteurActions vecteurActionsClient, IPublicOrder orderManagerClient, IDigitizationHelper digitizationHelper, IMessageBusCallHelper messageBusCallHelper, IMailHelper mailHelper, IBus bus, IParameterHelper parameterHelper, IDataBuilder dataBuilder) { this.vecteurActionsClient = vecteurActionsClient ?? throw new ArgumentNullException(nameof(vecteurActionsClient)); this.orderManagerClient = orderManagerClient ?? throw new ArgumentNullException(nameof(orderManagerClient)); this.digitizationHelper = digitizationHelper ?? throw new ArgumentNullException(nameof(digitizationHelper)); this.messageBusCallHelper = messageBusCallHelper ?? throw new ArgumentNullException(nameof(messageBusCallHelper)); this.mailHelper = mailHelper ?? throw new ArgumentNullException(nameof(mailHelper)); this.bus = bus ?? throw new ArgumentNullException(nameof(bus)); this.parameterHelper = parameterHelper ?? throw new ArgumentNullException(nameof(parameterHelper)); this.dataBuilder = dataBuilder ?? throw new ArgumentNullException(nameof(dataBuilder)); }
/// <summary> /// 注册IDataHandler,自动更新操作者ID /// </summary> /// <typeparam name="TUserKey"></typeparam> /// <param name="services"></param> /// <param name="getUserIdFunc"></param> /// <returns></returns> public static IDataBuilder AddWebUserHandler <TUserKey>(this IDataBuilder builder, Func <string, TUserKey> getUserIdFunc) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (getUserIdFunc == null) { throw new ArgumentNullException(nameof(getUserIdFunc)); } builder.Services.AddScoped <IDataHandler, OperationUserHandler <TUserKey> >(sp => { return(new OperationUserHandler <TUserKey>(sp.GetRequiredService <IHttpContextAccessor>(), getUserIdFunc)); }); return(builder); }
public static void SetCustomDataBuilder(IDataBuilder builder) { AddressableAssetSettings settings = AddressableAssetSettingsDefaultObject.Settings; int index = settings.DataBuilders.IndexOf((ScriptableObject)builder); if (index > 0) { settings.ActivePlayerDataBuilderIndex = index; } else if (AddressableAssetSettingsDefaultObject.Settings.AddDataBuilder(builder)) { settings.ActivePlayerDataBuilderIndex = AddressableAssetSettingsDefaultObject.Settings.DataBuilders.Count - 1; } else { Debug.LogWarning($"{builder} could not be found " + $"or added to the list of DataBuilders"); } }
public static IDataBuilder AddDbLink(this IDataBuilder builder, string name, string dbType, string connectionString, string description = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } if (string.IsNullOrEmpty(dbType)) { throw new ArgumentNullException(nameof(dbType)); } if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentNullException(nameof(connectionString)); } return(AddDbLink(builder, new CommonDbLinkProvider(name, dbType, connectionString, description))); }
public void IncrementalBuild_WhenBundleTimestampUnchanged_DoesNotCopy() { AddressableAssetBuildResult result; var group = Settings.CreateGroup("MyTestGroup", true, false, false, null, typeof(BundledAssetGroupSchema)); var spriteEntry = Settings.CreateOrMoveEntry(CreateTexture($"{m_SingleTestAssetFolder}/testTexture.png"), group, false, false); Settings.profileSettings.SetValue(Settings.activeProfileId, AddressableAssetSettings.kLocalBuildPath, m_SingleTestBuildFolder); Settings.profileSettings.SetValue(Settings.activeProfileId, AddressableAssetSettings.kLocalLoadPath, "Library/LocalLoadPath"); IDataBuilder b = GetBuilderOfType(Settings, typeof(BuildScriptPackedMode)); b.BuildData <AddressableAssetBuildResult>(new AddressablesDataBuilderInput(Settings)); string[] buildFiles = Directory.GetFiles(m_SingleTestBuildFolder); // Build again with a lock on the output bundle. This is how we ensure that the bundle is not written again using (File.Open(buildFiles[0], FileMode.Open, FileAccess.ReadWrite, FileShare.None)) result = b.BuildData <AddressableAssetBuildResult>(new AddressablesDataBuilderInput(Settings)); Assert.AreEqual(1, buildFiles.Length, "There should only be one bundle file in the build output folder"); Assert.IsTrue(string.IsNullOrEmpty(result.Error)); }