Prechádzať zdrojové kódy

- [Vitorm.Data]
- change methods to virtual
- rename LoadDataProviders to AddDataProviders
- get DataProvider by name or namespace or class namespace

Lith 7 mesiacov pred
rodič
commit
e5de9038b0
4 zmenil súbory, kde vykonal 50 pridanie a 48 odobranie
  1. 1 1
      Vitorm.sln
  2. 5 2
      doc/ReleaseNotes.md
  3. 1 1
      src/Versions.props
  4. 43 44
      src/Vitorm.Data/Data.DataSource.cs

+ 1 - 1
Vitorm.sln

@@ -7,7 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{75C25D0B-852
 	ProjectSection(SolutionItems) = preProject
 		doc\Count.md = doc\Count.md
 		README.md = README.md
-		doc\ReleaseLog.md = doc\ReleaseLog.md
+		doc\ReleaseNotes.md = doc\ReleaseNotes.md
 		doc\TODO.md = doc\TODO.md
 	EndProjectSection
 EndProject

+ 5 - 2
doc/ReleaseLog.md → doc/ReleaseNotes.md

@@ -1,4 +1,4 @@
-# Vitorm ReleaseLog
+# Vitorm ReleaseNotes
 
 
 -----------------------
@@ -7,7 +7,10 @@
 - [Vitorm.Sqlite]
     - support autoincrement key
     - identity key will start from 1 after truncate table
-
+- [Vitorm.Data]
+    - change methods to virtual
+    - rename LoadDataProviders to AddDataProviders
+    - get DataProvider by name or namespace or class namespace
 
 -----------------------
 # 2.1.2

+ 1 - 1
src/Versions.props

@@ -1,6 +1,6 @@
 <Project>
     <PropertyGroup>
-        <Version>2.2.0-preview3</Version>
+        <Version>2.2.0-preview4</Version>
         <VitLinq_Version>[3.1.3-preview, 3.2.0)</VitLinq_Version>
     </PropertyGroup>
 

+ 43 - 44
src/Vitorm.Data/Data.DataSource.cs

@@ -21,18 +21,18 @@ namespace Vitorm
             /// Data.Init("appsettings.Development.json")
             /// </summary>
             /// <param name="appsettingsFileName"></param>
-            public DataSource AddDataProviders(string appsettingsFileName)
+            public virtual DataSource AddDataProviders(string appsettingsFileName)
             {
                 AddDataProviders(new JsonFile(appsettingsFileName));
                 return this;
             }
 
-            public DataSource AddDataProviders(JsonFile json, string configPath = "Vitorm.Data")
+            public virtual DataSource AddDataProviders(JsonFile json, string configPath = "Vitorm.Data")
             {
                 var dataProviderConfigs = json.GetByPath<List<Dictionary<string, object>>>(configPath);
-                return LoadDataProviders(dataProviderConfigs);
+                return AddDataProviders(dataProviderConfigs);
             }
-            public DataSource LoadDataProviders(IEnumerable<Dictionary<string, object>> dataProviderConfigs)
+            public virtual DataSource AddDataProviders(IEnumerable<Dictionary<string, object>> dataProviderConfigs)
             {
                 var dataProviders = dataProviderConfigs?.Select(CreateDataProvider).NotNull().ToList();
 
@@ -43,7 +43,7 @@ namespace Vitorm
                 return this;
             }
 
-            public bool AddDataProvider(Dictionary<string, object> dataProviderConfig)
+            public virtual bool AddDataProvider(Dictionary<string, object> dataProviderConfig)
             {
                 var provider = CreateDataProvider(dataProviderConfig);
                 if (provider == null) return false;
@@ -52,7 +52,7 @@ namespace Vitorm
                 providerMap.Clear();
                 return true;
             }
-            public void ClearDataProviders(Predicate<DataProviderCache> predicate = null)
+            public virtual void ClearDataProviders(Predicate<DataProviderCache> predicate = null)
             {
                 if (predicate != null)
                     providerCache.RemoveAll(predicate);
@@ -65,27 +65,26 @@ namespace Vitorm
 
             #region DataProvider
 
-            public IDataProvider DataProvider<Entity>() => DataProvider(typeof(Entity));
-            public IDataProvider DataProvider(Type entityType)
+            public virtual IDataProvider DataProvider<Entity>() => DataProvider(typeof(Entity));
+            public virtual IDataProvider DataProvider(Type entityType)
             {
                 return providerMap.GetOrAdd(entityType, GetDataProviderFromConfig);
-
-                IDataProvider GetDataProviderFromConfig(Type entityType)
-                {
-                    var classFullName = entityType.FullName;
-                    return providerCache.FirstOrDefault(cache => cache.Match(classFullName))?.dataProvider
-                        ?? throw new NotImplementedException("can not find config for type: " + classFullName);
-                }
+            }
+            private IDataProvider GetDataProviderFromConfig(Type entityType)
+            {
+                var classFullName = entityType.FullName;
+                return providerCache.FirstOrDefault(cache => cache.Match(classFullName))?.dataProvider
+                    ?? throw new NotImplementedException("can not find config for type: " + classFullName);
             }
 
             /// <summary>
-            /// dataProviderName:  dataProviderName or dataProviderNamespace
+            /// nameOrNamespace:  dataProviderName or dataProviderNamespace
             /// </summary>
-            /// <param name="dataProviderName"></param>
+            /// <param name="nameOrNamespace"></param>
             /// <returns></returns>
-            public IDataProvider DataProvider(string dataProviderName)
+            public virtual IDataProvider DataProvider(string nameOrNamespace)
             {
-                return providerCache.FirstOrDefault(cache => cache.name == dataProviderName || cache.@namespace == dataProviderName)?.dataProvider;
+                return providerCache.FirstOrDefault(cache => cache.name == nameOrNamespace || cache.Match(nameOrNamespace))?.dataProvider;
             }
 
 
@@ -137,31 +136,31 @@ namespace Vitorm
             #region CRUD Sync
 
             // #0 Schema :  TryCreateTable TryDropTable
-            public void TryCreateTable<Entity>() => DataProvider<Entity>().TryCreateTable<Entity>();
-            public void TryDropTable<Entity>() => DataProvider<Entity>().TryDropTable<Entity>();
-            public void Truncate<Entity>() => DataProvider<Entity>().Truncate<Entity>();
+            public virtual void TryCreateTable<Entity>() => DataProvider<Entity>().TryCreateTable<Entity>();
+            public virtual void TryDropTable<Entity>() => DataProvider<Entity>().TryDropTable<Entity>();
+            public virtual void Truncate<Entity>() => DataProvider<Entity>().Truncate<Entity>();
 
 
             // #1 Create :  Add AddRange
-            public Entity Add<Entity>(Entity entity) => DataProvider<Entity>().Add<Entity>(entity);
-            public void AddRange<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().AddRange<Entity>(entities);
+            public virtual Entity Add<Entity>(Entity entity) => DataProvider<Entity>().Add<Entity>(entity);
+            public virtual void AddRange<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().AddRange<Entity>(entities);
 
             // #2 Retrieve : Get Query
-            public Entity Get<Entity>(object keyValue) => DataProvider<Entity>().Get<Entity>(keyValue);
-            public IQueryable<Entity> Query<Entity>() => DataProvider<Entity>().Query<Entity>();
+            public virtual Entity Get<Entity>(object keyValue) => DataProvider<Entity>().Get<Entity>(keyValue);
+            public virtual IQueryable<Entity> Query<Entity>() => DataProvider<Entity>().Query<Entity>();
 
 
             // #3 Update: Update UpdateRange
-            public int Update<Entity>(Entity entity) => DataProvider<Entity>().Update<Entity>(entity);
-            public int UpdateRange<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().UpdateRange<Entity>(entities);
+            public virtual int Update<Entity>(Entity entity) => DataProvider<Entity>().Update<Entity>(entity);
+            public virtual int UpdateRange<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().UpdateRange<Entity>(entities);
 
 
             // #4 Delete : Delete DeleteRange DeleteByKey DeleteByKeys
-            public int Delete<Entity>(Entity entity) => DataProvider<Entity>().Delete<Entity>(entity);
-            public int DeleteRange<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().DeleteRange<Entity>(entities);
+            public virtual int Delete<Entity>(Entity entity) => DataProvider<Entity>().Delete<Entity>(entity);
+            public virtual int DeleteRange<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().DeleteRange<Entity>(entities);
 
-            public int DeleteByKey<Entity>(object keyValue) => DataProvider<Entity>().DeleteByKey<Entity>(keyValue);
-            public int DeleteByKeys<Entity, Key>(IEnumerable<Key> keys) => DataProvider<Entity>().DeleteByKeys<Entity, Key>(keys);
+            public virtual int DeleteByKey<Entity>(object keyValue) => DataProvider<Entity>().DeleteByKey<Entity>(keyValue);
+            public virtual int DeleteByKeys<Entity, Key>(IEnumerable<Key> keys) => DataProvider<Entity>().DeleteByKeys<Entity, Key>(keys);
 
             #endregion
 
@@ -170,30 +169,30 @@ namespace Vitorm
             #region CRUD Async
 
             // #0 Schema :  TryCreateTable TryDropTable
-            public Task TryCreateTableAsync<Entity>() => DataProvider<Entity>().TryCreateTableAsync<Entity>();
-            public Task TryDropTableAsync<Entity>() => DataProvider<Entity>().TryDropTableAsync<Entity>();
-            public Task TruncateAsync<Entity>() => DataProvider<Entity>().TruncateAsync<Entity>();
+            public virtual Task TryCreateTableAsync<Entity>() => DataProvider<Entity>().TryCreateTableAsync<Entity>();
+            public virtual Task TryDropTableAsync<Entity>() => DataProvider<Entity>().TryDropTableAsync<Entity>();
+            public virtual Task TruncateAsync<Entity>() => DataProvider<Entity>().TruncateAsync<Entity>();
 
 
             // #1 Create :  Add AddRange
-            public Task<Entity> AddAsync<Entity>(Entity entity) => DataProvider<Entity>().AddAsync<Entity>(entity);
-            public Task AddRangeAsync<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().AddRangeAsync<Entity>(entities);
+            public virtual Task<Entity> AddAsync<Entity>(Entity entity) => DataProvider<Entity>().AddAsync<Entity>(entity);
+            public virtual Task AddRangeAsync<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().AddRangeAsync<Entity>(entities);
 
             // #2 Retrieve : Get Query
-            public Task<Entity> GetAsync<Entity>(object keyValue) => DataProvider<Entity>().GetAsync<Entity>(keyValue);
+            public virtual Task<Entity> GetAsync<Entity>(object keyValue) => DataProvider<Entity>().GetAsync<Entity>(keyValue);
 
 
             // #3 Update: Update UpdateRange
-            public Task<int> UpdateAsync<Entity>(Entity entity) => DataProvider<Entity>().UpdateAsync<Entity>(entity);
-            public Task<int> UpdateRangeAsync<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().UpdateRangeAsync<Entity>(entities);
+            public virtual Task<int> UpdateAsync<Entity>(Entity entity) => DataProvider<Entity>().UpdateAsync<Entity>(entity);
+            public virtual Task<int> UpdateRangeAsync<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().UpdateRangeAsync<Entity>(entities);
 
 
             // #4 Delete : Delete DeleteRange DeleteByKey DeleteByKeys
-            public Task<int> DeleteAsync<Entity>(Entity entity) => DataProvider<Entity>().DeleteAsync<Entity>(entity);
-            public Task<int> DeleteRangeAsync<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().DeleteRangeAsync<Entity>(entities);
+            public virtual Task<int> DeleteAsync<Entity>(Entity entity) => DataProvider<Entity>().DeleteAsync<Entity>(entity);
+            public virtual Task<int> DeleteRangeAsync<Entity>(IEnumerable<Entity> entities) => DataProvider<Entity>().DeleteRangeAsync<Entity>(entities);
 
-            public Task<int> DeleteByKeyAsync<Entity>(object keyValue) => DataProvider<Entity>().DeleteByKeyAsync<Entity>(keyValue);
-            public Task<int> DeleteByKeysAsync<Entity, Key>(IEnumerable<Key> keys) => DataProvider<Entity>().DeleteByKeysAsync<Entity, Key>(keys);
+            public virtual Task<int> DeleteByKeyAsync<Entity>(object keyValue) => DataProvider<Entity>().DeleteByKeyAsync<Entity>(keyValue);
+            public virtual Task<int> DeleteByKeysAsync<Entity, Key>(IEnumerable<Key> keys) => DataProvider<Entity>().DeleteByKeysAsync<Entity, Key>(keys);
 
             #endregion