public AssetProcessService(ISettingsRepository settingsRepository, IEntryRulesRepository entryRulesRepository,
                                   IAssetDatabaseAdapter assetDatabaseAdapter, IAddressablesEditorAdapter addressablesEditorAdapter)
        {
            // Create AddressableAssetSettings asset if it does not exists.
            if (AddressableAssetSettingsDefaultObject.Settings == null)
            {
                AddressableAssetSettingsDefaultObject.Settings = AddressableAssetSettings.Create(
                    AddressableAssetSettingsDefaultObject.kDefaultConfigFolder,
                    AddressableAssetSettingsDefaultObject.kDefaultConfigAssetName, true, true);
            }

            var addressableSettings            = AddressableAssetSettingsDefaultObject.Settings;
            var addressablePathGenerateService = new AddressablePathGenerateDomainService();
            var addressGenerateService         = new AddressGenerateDomainService(addressablePathGenerateService);
            var groupNameService = new GroupNameGenerateDomainService(assetDatabaseAdapter);
            var entryOperationInfoBuildService =
                new EntryOperationInfoBuildDomainService(addressablePathGenerateService, addressGenerateService,
                                                         groupNameService, assetDatabaseAdapter);
            var entryOperationInfoApplyService =
                new EntryOperationInfoApplyDomainService(addressablesEditorAdapter, assetDatabaseAdapter);

            _domainService = new AssetProcessDomainService(settingsRepository, entryRulesRepository,
                                                           addressableSettings, assetDatabaseAdapter, entryOperationInfoBuildService,
                                                           entryOperationInfoApplyService, addressablePathGenerateService);
        }
        public EntryRulesService(IEntryRulesRepository entryRulesRepository)
        {
            _entryRulesRepository = entryRulesRepository;

            // Initialize the store.
            var initialState = _entryRulesRepository.Fetch();

            _entryRulesStore = new EntryRulesStore(initialState);
        }
 /// <summary>
 ///     Initialize.
 /// </summary>
 /// <param name="settingsRepository"></param>
 /// <param name="rulesRepository"></param>
 /// <param name="addressableSettings"></param>
 /// <param name="assetDatabaseAdapter"></param>
 /// <param name="entryOperationInfoBuildService"></param>
 /// <param name="entryOperationInfoApplyService"></param>
 /// <param name="addressablePathGenerateService"></param>
 public AssetProcessDomainService(ISettingsRepository settingsRepository, IEntryRulesRepository rulesRepository,
                                  AddressableAssetSettings addressableSettings,
                                  IAssetDatabaseAdapter assetDatabaseAdapter,
                                  EntryOperationInfoBuildDomainService entryOperationInfoBuildService,
                                  EntryOperationInfoApplyDomainService entryOperationInfoApplyService,
                                  AddressablePathGenerateDomainService addressablePathGenerateService)
 {
     _settingsRepository             = settingsRepository;
     _rulesRepository                = rulesRepository;
     _addressableSettings            = addressableSettings;
     _assetDatabaseAdapter           = assetDatabaseAdapter;
     _entryOperationInfoBuildService = entryOperationInfoBuildService;
     _entryOperationInfoApplyService = entryOperationInfoApplyService;
     _addressablePathGenerateService = addressablePathGenerateService;
 }