Skip to content

Commit 82277f6

Browse files
committed
fixed EntityVisistQuery Bugs
1 parent c94319e commit 82277f6

34 files changed

+422
-233
lines changed

src/Example/Data/Context.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
3030
//optionsBuilder.UseFileContext(new FileContextCore.Serializer.XMLSerializer());
3131

3232
//CSV
33-
//optionsBuilder.UseFileContext(new FileContextCore.Serializer.CSVSerializer());
33+
optionsBuilder.UseFileContext(new FileContextCore.Serializer.CSVSerializer());
3434

3535
//Excel
36-
optionsBuilder.UseFileContext(new FileContextCore.CombinedManager.ExcelManager());
36+
//optionsBuilder.UseFileContext(new FileContextCore.CombinedManager.ExcelManager());
3737
}
3838

3939
protected override void OnModelCreating(ModelBuilder modelBuilder)

src/Example/Data/Entities/Base.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public Base()
1919

2020
public DateTime CreatedOn { get; set; }
2121

22+
2223
public DateTime UpdatedOn { get; set; }
2324
}
2425
}

src/FileContextCore/CombinedManager/ExcelManager.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ FileInfo GetFilePath(string fileName)
2727
return new FileInfo(Path.Combine(path, fileName));
2828
}
2929

30-
public IList GetItems(Type t)
30+
public List<T> GetItems<T>()
3131
{
32+
Type t = typeof(T);
3233
ExcelPackage package;
3334

3435
if (password != "")
@@ -52,11 +53,11 @@ public IList GetItems(Type t)
5253
properties.Add(i + 1, props.FirstOrDefault(x => x.Name == (string)ws.Cells[1, i + 1].Value));
5354
}
5455

55-
IList result = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(t));
56+
List<T> result = new List<T>();// (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(t));
5657

5758
for (int i = 1; i < ws.Dimension.Rows; i++)
5859
{
59-
object item = Activator.CreateInstance(t);
60+
T item = (T)Activator.CreateInstance(t);
6061

6162
foreach (KeyValuePair<int, PropertyInfo> prop in properties)
6263
{
@@ -107,11 +108,11 @@ public IList GetItems(Type t)
107108

108109
package.Dispose();
109110

110-
return (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(t));
111+
return new List<T>();
111112
}
112113
}
113114

114-
public void SaveItems(IList list)
115+
public void SaveItems<T>(List<T> list)
115116
{
116117
ExcelPackage package;
117118

@@ -131,7 +132,7 @@ public void SaveItems(IList list)
131132

132133
for (int i = 0; i < list.Count; i++)
133134
{
134-
object item = list[i];
135+
T item = list[i];
135136

136137
for (int x = 0; x < props.Count(); x++)
137138
{

src/FileContextCore/CombinedManager/ICombinedManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ namespace FileContextCore.CombinedManager
77
{
88
public interface ICombinedManager
99
{
10-
IList GetItems(Type t);
10+
List<T> GetItems<T>();
1111

12-
void SaveItems(IList list);
12+
void SaveItems<T>(List<T> list);
1313

1414
bool Clear();
1515

src/FileContextCore/CombinedManager/SerializerManager.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,14 @@ public bool Exists()
2828
return fileManager.DatabaseExists();
2929
}
3030

31-
public IList GetItems(Type t)
31+
public List<T> GetItems<T>()
3232
{
33-
return serializer.DeserializeList(fileManager.LoadContent(t, serializer.FileType), t);
33+
return serializer.DeserializeList<T>(fileManager.LoadContent<T>(serializer.FileType));
3434
}
3535

36-
public void SaveItems(IList list)
36+
public void SaveItems<T>(List<T> list)
3737
{
38-
Type t = list.GetType().GenericTypeArguments[0];
39-
40-
fileManager.SaveContent(t, serializer.FileType, serializer.SerializeList(list));
38+
fileManager.SaveContent<T>(serializer.FileType, serializer.SerializeList(list));
4139
}
4240
}
4341
}

src/FileContextCore/Extensions/FileContextServiceCollectionExtensions.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using FileContextCore.Infrastructure;
1+
using FileContextCore.Helper;
2+
using FileContextCore.Infrastructure;
23
using FileContextCore.Query;
34
using FileContextCore.Query.ExpressionVisitors;
45
using FileContextCore.Storage;
@@ -24,7 +25,7 @@ public static IServiceCollection AddEntityFrameworkFileContext(this IServiceColl
2425
.Singleton<IDatabaseProvider, DatabaseProvider<FileContextProviderServices, FileContextOptionsExtension>>());
2526

2627
services.TryAdd(new ServiceCollection()
27-
.AddSingleton<FileContextCache>()
28+
//.AddSingleton<FileContextCache>()
2829
.AddSingleton<FileContextModelSource>()
2930
.AddSingleton<FileValueGeneratorCache>()
3031
.AddScoped<FileContextValueGeneratorSelector>()
@@ -36,6 +37,8 @@ public static IServiceCollection AddEntityFrameworkFileContext(this IServiceColl
3637
.AddScoped<FileContextQueryContextFactory>()
3738
.AddScoped<FileContextTransactionManager>());
3839

40+
QueryHelper.cache = new FileContextCache();
41+
3942
return services;
4043
}
4144
}

src/FileContextCore/FileContextCore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<RepositoryUrl>https://github.com/morrisjdev/FileContextCore</RepositoryUrl>
2020
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
2121
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
22-
<Version>1.0.6</Version>
22+
<Version>1.0.7</Version>
2323
<PackageTags>ef, database, file, db, filedb, json, xml, csv, xlsx, excel, dbcontext, entity framework</PackageTags>
2424
<PackageIconUrl>https://morrisj.net/img/morrisjdev_logo.png</PackageIconUrl>
2525
</PropertyGroup>

src/FileContextCore/FileManager/DefaultFileManager.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ public class DefaultFileManager : IFileManager
1010
{
1111
private object thisLock = new object();
1212

13-
public string GetFileName(Type t, string fileType)
13+
public string GetFileName<T>(string fileType)
1414
{
15-
return GetFilePath(t.Name + "." + fileType);
15+
return GetFilePath(typeof(T).Name + "." + fileType);
1616
}
1717

1818
public string GetFilePath(string fileName)
@@ -23,9 +23,9 @@ public string GetFilePath(string fileName)
2323
return Path.Combine(path, fileName);
2424
}
2525

26-
public string LoadContent(Type t, string fileType)
26+
public string LoadContent<T>(string fileType)
2727
{
28-
return LoadContent(GetFileName(t, fileType));
28+
return LoadContent(GetFileName<T>(fileType));
2929
}
3030

3131
public string LoadContent(string fileName)
@@ -43,9 +43,9 @@ public string LoadContent(string fileName)
4343
}
4444
}
4545

46-
public void SaveContent(Type t, string fileType, string content)
46+
public void SaveContent<T>(string fileType, string content)
4747
{
48-
SaveContent(GetFileName(t, fileType), content);
48+
SaveContent(GetFileName<T>(fileType), content);
4949
}
5050

5151
public void SaveContent(string fileName, string content)

src/FileContextCore/FileManager/EncryptedFileManager.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ public string Encrypt(string str)
6666

6767
private object thisLock = new object();
6868

69-
public string GetFileName(Type t, string fileType)
69+
public string GetFileName<T>(string fileType)
7070
{
71-
return GetFilePath(t.Name + "." + fileType + "." + "crypt");
71+
return GetFilePath(typeof(T).Name + "." + fileType + "." + "crypt");
7272
}
7373

7474
public string GetFilePath(string fileName)
@@ -79,9 +79,9 @@ public string GetFilePath(string fileName)
7979
return Path.Combine(path, fileName);
8080
}
8181

82-
public string LoadContent(Type t, string fileType)
82+
public string LoadContent<T>(string fileType)
8383
{
84-
return LoadContent(GetFileName(t, fileType));
84+
return LoadContent(GetFileName<T>(fileType));
8585
}
8686

8787
public string LoadContent(string fileName)
@@ -99,9 +99,9 @@ public string LoadContent(string fileName)
9999
}
100100
}
101101

102-
public void SaveContent(Type t, string fileType, string content)
102+
public void SaveContent<T>(string fileType, string content)
103103
{
104-
SaveContent(GetFileName(t, fileType), content);
104+
SaveContent(GetFileName<T>(fileType), content);
105105
}
106106

107107
public void SaveContent(string fileName, string content)

src/FileContextCore/FileManager/IFileManager.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ namespace FileContextCore.FileManager
66
{
77
public interface IFileManager
88
{
9-
string GetFileName(Type t, string fileType);
9+
string GetFileName<T>(string fileType);
1010

1111
string GetFilePath(string fileName);
1212

13-
string LoadContent(Type t, string fileType);
13+
string LoadContent<T>(string fileType);
1414

1515
string LoadContent(string fileName);
1616

17-
void SaveContent(Type t, string fileType, string content);
17+
void SaveContent<T>(string fileType, string content);
1818

1919
void SaveContent(string fileName, string content);
2020

0 commit comments

Comments
 (0)