Skip to content

Commit f11ba5c

Browse files
committed
started refactoring to use of store manager
1 parent f702c1e commit f11ba5c

File tree

10 files changed

+87
-27
lines changed

10 files changed

+87
-27
lines changed

FileContextCore/FileManager/EncryptedFileManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public string GetFileName()
3636

3737
Directory.CreateDirectory(path);
3838

39-
return Path.Combine(path, name + "." + filetype + ".crypted");
39+
return Path.Combine(path, name + "." + filetype + ".encrypted");
4040
}
4141

4242
public string LoadContent()

FileContextCore/FileManager/IFileManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace FileContextCore.FileManager
22
{
3-
interface IFileManager
3+
public interface IFileManager
44
{
55
string GetFileName();
66

FileContextCore/Serializer/BSONSerializer.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,23 @@
1111

1212
namespace FileContextCore.Serializer
1313
{
14-
class BSONSerializer<T> : ISerializer
14+
class BSONSerializer<T> : ISerializer<T>
1515
{
1616
private IEntityType entityType;
17-
private readonly IPrincipalKeyValueFactory<T> _keyValueFactory;
17+
private IPrincipalKeyValueFactory<T> _keyValueFactory;
1818
private string[] propertyKeys;
19-
private readonly Type[] typeList;
19+
private Type[] typeList;
2020

21-
public BSONSerializer(IEntityType _entityType, IPrincipalKeyValueFactory<T> _keyValueFactory)
21+
public BSONSerializer() { }
22+
23+
public void Initialize(IEntityType _entityType, IPrincipalKeyValueFactory<T> _keyValueFactory)
2224
{
2325
entityType = _entityType;
2426
this._keyValueFactory = _keyValueFactory;
2527
propertyKeys = entityType.GetProperties().Select(p => p.GetColumnName()).ToArray();
2628
typeList = entityType.GetProperties().Select(p => p.GetValueConverter()?.ProviderClrType ?? p.ClrType).ToArray();
2729
}
28-
30+
2931
public Dictionary<TKey, object[]> Deserialize<TKey>(string list, Dictionary<TKey, object[]> newList)
3032
{
3133
byte[] data = Convert.FromBase64String(list);

FileContextCore/Serializer/CSVSerializer.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,23 @@
1010

1111
namespace FileContextCore.Serializer
1212
{
13-
class CSVSerializer<T> : ISerializer
13+
class CSVSerializer<T> : ISerializer<T>
1414
{
1515
private IEntityType entityType;
16-
private readonly IPrincipalKeyValueFactory<T> _keyValueFactory;
16+
private IPrincipalKeyValueFactory<T> _keyValueFactory;
1717
private string[] propertyKeys;
18-
private readonly Type[] typeList;
18+
private Type[] typeList;
1919

20-
public CSVSerializer(IEntityType _entityType, IPrincipalKeyValueFactory<T> _keyValueFactory)
20+
public CSVSerializer() { }
21+
22+
public void Initialize(IEntityType _entityType, IPrincipalKeyValueFactory<T> _keyValueFactory)
2123
{
2224
entityType = _entityType;
2325
this._keyValueFactory = _keyValueFactory;
2426
propertyKeys = entityType.GetProperties().Select(p => p.GetColumnName()).ToArray();
2527
typeList = entityType.GetProperties().Select(p => p.GetValueConverter()?.ProviderClrType ?? p.ClrType).ToArray();
2628
}
27-
29+
2830
public Dictionary<TKey, object[]> Deserialize<TKey>(string list, Dictionary<TKey, object[]> newList)
2931
{
3032
if (string.IsNullOrEmpty(list))
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
using System.Collections.Generic;
2+
using Microsoft.EntityFrameworkCore.ChangeTracking.Internal;
3+
using Microsoft.EntityFrameworkCore.Metadata;
24

35
namespace FileContextCore.Serializer
46
{
5-
interface ISerializer
7+
public interface ISerializer<TKey>
68
{
79
Dictionary<TKey, object[]> Deserialize<TKey>(string list, Dictionary<TKey, object[]> newList);
810

911
string Serialize<TKey>(Dictionary<TKey, object[]> list);
12+
13+
void Initialize(IEntityType _entityType, IPrincipalKeyValueFactory<TKey> _keyValueFactory);
14+
15+
// string FileType { get; }
1016
}
1117
}

FileContextCore/Serializer/JSONSerializer.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@
88

99
namespace FileContextCore.Serializer
1010
{
11-
class JSONSerializer<T> : ISerializer
11+
class JSONSerializer<T> : ISerializer<T>
1212
{
1313
private IEntityType entityType;
14-
private readonly IPrincipalKeyValueFactory<T> _keyValueFactory;
14+
private IPrincipalKeyValueFactory<T> _keyValueFactory;
1515
private string[] propertyKeys;
16-
private readonly Type[] typeList;
16+
private Type[] typeList;
1717

18-
public JSONSerializer(IEntityType _entityType, IPrincipalKeyValueFactory<T> _keyValueFactory)
18+
public JSONSerializer() { }
19+
20+
public void Initialize(IEntityType _entityType, IPrincipalKeyValueFactory<T> _keyValueFactory)
1921
{
2022
entityType = _entityType;
2123
this._keyValueFactory = _keyValueFactory;

FileContextCore/Serializer/XMLSerializer.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,23 @@
1212

1313
namespace FileContextCore.Serializer
1414
{
15-
class XMLSerializer<T> : ISerializer
15+
class XMLSerializer<T> : ISerializer<T>
1616
{
1717
private IEntityType entityType;
18-
private readonly IPrincipalKeyValueFactory<T> _keyValueFactory;
18+
private IPrincipalKeyValueFactory<T> _keyValueFactory;
1919
private string[] propertyKeys;
20-
private readonly Type[] typeList;
20+
private Type[] typeList;
2121

22-
public XMLSerializer(IEntityType _entityType, IPrincipalKeyValueFactory<T> _keyValueFactory)
22+
public XMLSerializer() { }
23+
24+
public void Initialize(IEntityType _entityType, IPrincipalKeyValueFactory<T> _keyValueFactory)
2325
{
2426
entityType = _entityType;
2527
this._keyValueFactory = _keyValueFactory;
2628
propertyKeys = entityType.GetProperties().Select(p => p.GetColumnName()).ToArray();
2729
typeList = entityType.GetProperties().Select(p => p.GetValueConverter()?.ProviderClrType ?? p.ClrType).ToArray();
2830
}
29-
31+
3032
public Dictionary<TKey, object[]> Deserialize<TKey>(string list, Dictionary<TKey, object[]> newList)
3133
{
3234
if (list != "")

FileContextCore/Storage/Internal/FileContextTable.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class FileContextTable<TKey> : IFileContextTable
3535
private readonly Dictionary<TKey, object[]> _rows;
3636

3737
private IFileManager fileManager;
38-
private ISerializer serializer;
38+
private ISerializer<TKey> serializer;
3939
private string filetype;
4040

4141
private Dictionary<int, IFileContextIntegerValueGenerator> _integerGenerators;
@@ -246,20 +246,22 @@ private void InitSerializer()
246246
{
247247
if (_options.Serializer == "xml")
248248
{
249-
serializer = new XMLSerializer<TKey>(_entityType, _keyValueFactory);
249+
serializer = new XMLSerializer<TKey>();
250250
}
251251
else if (_options.Serializer == "bson")
252252
{
253-
serializer = new BSONSerializer<TKey>(_entityType, _keyValueFactory);
253+
serializer = new BSONSerializer<TKey>();
254254
}
255255
else if (_options.Serializer == "csv")
256256
{
257-
serializer = new CSVSerializer<TKey>(_entityType, _keyValueFactory);
257+
serializer = new CSVSerializer<TKey>();
258258
}
259259
else
260260
{
261-
serializer = new JSONSerializer<TKey>(_entityType, _keyValueFactory);
261+
serializer = new JSONSerializer<TKey>();
262262
}
263+
264+
serializer.Initialize(_entityType, _keyValueFactory);
263265
}
264266

265267
private Action<Dictionary<TKey, object[]>> UpdateMethod;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System.Collections.Generic;
2+
using CsvHelper;
3+
using FileContextCore.FileManager;
4+
using FileContextCore.Serializer;
5+
using Microsoft.EntityFrameworkCore.ChangeTracking.Internal;
6+
using Microsoft.EntityFrameworkCore.Metadata;
7+
8+
namespace FileContextCore.StoreManager
9+
{
10+
public class DefaultStoreManager<TKey, TSerializer, TFileManager> : IStoreManager<TKey>
11+
where TSerializer : ISerializer<TKey>
12+
where TFileManager : IFileManager
13+
{
14+
public void Initialize(IEntityType _entityType, IPrincipalKeyValueFactory<TKey> _keyValueFactory)
15+
{
16+
throw new System.NotImplementedException();
17+
}
18+
19+
public Dictionary<TKey, object[]> Deserialize(Dictionary<TKey, object[]> newList)
20+
{
21+
throw new System.NotImplementedException();
22+
}
23+
24+
public void Serialize(Dictionary<TKey, object[]> list)
25+
{
26+
throw new System.NotImplementedException();
27+
}
28+
}
29+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System.Collections.Generic;
2+
using Microsoft.EntityFrameworkCore.ChangeTracking.Internal;
3+
using Microsoft.EntityFrameworkCore.Metadata;
4+
5+
namespace FileContextCore.StoreManager
6+
{
7+
public interface IStoreManager<TKey>
8+
{
9+
void Initialize(IEntityType _entityType, IPrincipalKeyValueFactory<TKey> _keyValueFactory);
10+
11+
Dictionary<TKey, object[]> Deserialize(Dictionary<TKey, object[]> newList);
12+
13+
void Serialize(Dictionary<TKey, object[]> list);
14+
}
15+
}

0 commit comments

Comments
 (0)