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]));
    }
Exemplo n.º 2
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> >();
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 6
0
        private void InitialiseLocalDatabase()
        {
            IDataStorageService dataStorage = container.GetInstance <IDataStorageService>();

            using (IDataBuilder modelBuilder = dataStorage.GetBuilder())
            {
                modelBuilder.BuildStorageAsync();
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 9
0
        /// <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);
        }
Exemplo n.º 11
0
 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;
 }
Exemplo n.º 12
0
 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;
 }
Exemplo n.º 13
0
 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);
 }
Exemplo n.º 14
0
 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);
 }
Exemplo n.º 15
0
 //--- 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;
 }
Exemplo n.º 16
0
        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.");
            }
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
    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);
    }
Exemplo n.º 19
0
 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, ""));
    }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 24
0
        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);
        }
Exemplo n.º 28
0
        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");
            }
        }
Exemplo n.º 29
0
        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));
    }