public BondegardFacade(IVisualFarmRepo repo, ICacheManager cacheManager, IUnitOfWork unitOfWork, IVFSConfig config) { _repo = repo; _cacheManager = cacheManager; _unitOfWork = unitOfWork; _config = config; }
/// <summary> /// 配置检查: 检查各组的Folder是否有冲突, 如果有冲突,返回true /// </summary> /// <param name="config"></param> /// <returns></returns> public static bool CheckConfig_GroupFolder(ref IVFSConfig config, out GroupFolderInfo[] folders) { if (config.PGroups == null || config.PGroups.Length == 0) { folders = null; return(false); } List <GroupFolderInfo> list_folders = new List <GroupFolderInfo>(); for (var i = 0; i < config.PGroups.Length; i++) { string group_name = config.PGroups[i].GroupName; //检查组内部 if (config.PGroups[i].CheckFolderConflict(out var paths)) { //有冲突 paths.ForEach(path => list_folders.Add(new GroupFolderInfo() { FolderPath = path, GroupName = group_name })); folders = list_folders.ToArray(); return(true); } //检查当前组与之前的组之间是否存在冲突 if (i > 0) { foreach (var path in config.PGroups[i].FolderPaths) { for (var j = 0; j < i; j++) { var _g_name = config.PGroups[i].GroupName; if (config.PGroups[i].CheckFolderConflict(out var result_paths, true)) { //有冲突 list_folders.Add(new GroupFolderInfo() { GroupName = group_name, FolderPath = path }); result_paths.ForEach(r_path => list_folders.Add(new GroupFolderInfo() { FolderPath = r_path, GroupName = _g_name })); folders = list_folders.ToArray(); return(true); } } } } } folders = null; return(false); }
/// <summary> /// 检查配置 (检查所有项目), 如果检查通过返回true, 否则返回false /// </summary> /// <param name="config"></param> /// <param name=""></param> /// <param name="errorfolders">如果有group内folder相关的错误,则在此处体现</param> /// <returns>if error ,return false</returns> public static bool CheckConfiguration(IVFSConfig config, out VFSErrorCode error, out GroupFolderInfo[] errorfolders) { errorfolders = null; #region 没有任何Group? if (config.PGroups == null || config.PGroups.Length == 0) { error = VFSErrorCode.NoneGroup; return(false); } #endregion #region 检查组名称是否重复 List <string> temp_list = new List <string>(); foreach (var group in config.PGroups) { if (temp_list.Contains(group.GroupName)) { //存在重复命名 error = VFSErrorCode.SameGroupName; return(false); } else { temp_list.Add(group.GroupName); } } #endregion #region 检查各组的folder配置是否冲突 if (CheckConfig_GroupFolder(ref config, out var folders)) { errorfolders = folders; error = VFSErrorCode.ConfigureGroupsConflict; return(false); } #endregion error = default; return(true); }
public SessionProvider(IVFSConfig config) { _config = config; _factory = BuildSessionFactory(); }
public SessionProvider(IVFSConfig config) { _config = config; _factory = BuildSessionFactory(); }
public VisualFarmMigrator() { _config = new VFSConfig(); _options = new MigrationOptions(); _options.SupportedProviders.Set(ProviderNames.SqlServer2008.AsArray()); }
/// <summary> /// 配置规范化 /// </summary> /// <param name="config"></param> public static void NormalizationConfig(IVFSConfig config) { if (config == null) { return; } //全局配置 //后缀名配置 补全缺失的“框架内部定义的必须存在的”配置项 #region 全局 后缀名 内部配置项 if (config.PGlobalVFS_Ignore_ExtName == null) { config.PGlobalVFS_Ignore_ExtName = new string[0]; } List <string> ext_list = new List <string>(); foreach (var item in TinaX.VFSKitInternal.InternalVFSConfig.GlobalIgnoreExtName) { if (!config.PGlobalVFS_Ignore_ExtName.Contains(item)) { ext_list.Add(item); } } if (ext_list.Count > 0) { config.PGlobalVFS_Ignore_ExtName = ArrayUtil.Combine(config.PGlobalVFS_Ignore_ExtName, ext_list.ToArray()); } #endregion //后缀名配置必须要以点开头,并小写 #region 全局 后缀名 格式规范 if (config.PGlobalVFS_Ignore_ExtName != null && config.PGlobalVFS_Ignore_ExtName.Length > 0) { for (var i = 0; i < config.PGlobalVFS_Ignore_ExtName.Length; i++) { if (!config.PGlobalVFS_Ignore_ExtName[i].StartsWith(".")) { config.PGlobalVFS_Ignore_ExtName[i] = "." + config.PGlobalVFS_Ignore_ExtName[i]; } config.PGlobalVFS_Ignore_ExtName[i] = config.PGlobalVFS_Ignore_ExtName[i].ToLower(); } } #endregion //后缀名配置 重复项 #region 全局 后缀名 重复项 if (config.PGlobalVFS_Ignore_ExtName != null && config.PGlobalVFS_Ignore_ExtName.Length > 0) { List <string> list = new List <string>(config.PGlobalVFS_Ignore_ExtName).Distinct().ToList(); if (list.Count != config.PGlobalVFS_Ignore_ExtName.Length) { config.PGlobalVFS_Ignore_ExtName = list.ToArray(); } } #endregion #region 全局 忽略 路径 item //补全内部设定 if (config.PGlobalVFS_Ignore_Path_Item == null) { config.PGlobalVFS_Ignore_Path_Item = new string[0]; } List <string> tmp_path_item_list = new List <string>(config.PGlobalVFS_Ignore_Path_Item); foreach (var item in TinaX.VFSKitInternal.InternalVFSConfig.GlobalIgnorePathItem) { if (!tmp_path_item_list.Contains(item)) { tmp_path_item_list.Add(item); } } List <string> temp_2 = new List <string>(); //查重和空白项目 for (int i = tmp_path_item_list.Count - 1; i >= 0; i--) { if (!tmp_path_item_list[i].IsNullOrEmpty()) { if (!temp_2.Any(item => item.ToLower() == tmp_path_item_list[i].ToLower())) { temp_2.Add(tmp_path_item_list[i]); } } } config.PGlobalVFS_Ignore_Path_Item = temp_2.ToArray(); #endregion #region 全局 Assetbundle细节 if (config.PAssetBundleFileExtension.IsNullOrEmpty() || config.PAssetBundleFileExtension.IsNullOrWhiteSpace()) { config.PAssetBundleFileExtension = InternalVFSConfig.default_AssetBundle_ExtName; } if (!config.PAssetBundleFileExtension.StartsWith(".")) { config.PAssetBundleFileExtension = "." + config.PAssetBundleFileExtension; } config.PAssetBundleFileExtension = config.PAssetBundleFileExtension.ToLower(); #endregion #region WebVFS if (config.PDefaultWebVFSBaseUrl.IsNullOrEmpty() || config.PDefaultWebVFSBaseUrl.IsNullOrWhiteSpace()) { config.PDefaultWebVFSBaseUrl = VFSKit.VFSKit.DefaultDownloadWebAssetUrl; } if (!config.PDefaultWebVFSBaseUrl.EndsWith("/")) { config.PDefaultWebVFSBaseUrl += "/"; } #endregion #region 至少包含一个Group if (config.PGroups == null || config.PGroups.Length == 0) { config.PGroups = new VFSGroupOption[] { VFSGroupOption.New() }; } #endregion }
public VisualFarmMigrator() { _config = new VFSConfig(); _options = new MigrationOptions(); _options.SupportedProviders.Set(ProviderNames.SqlServer2008.AsArray()); }