Skip to content

Commit eada6c7

Browse files
committed
refactoring unit of work towards open closed, linting, slight cleanup
1 parent bd3a67a commit eada6c7

File tree

54 files changed

+480
-482
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+480
-482
lines changed

Core/Core.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@
120120
<Compile Include="Enums\Language.cs" />
121121
<Compile Include="Enums\Periodicity.cs" />
122122
<Compile Include="Exceptions\NoCalculationResultException.cs" />
123-
<Compile Include="Interfaces\IComplete.cs" />
124123
<Compile Include="Interfaces\IEntityRoot.cs" />
125124
<Compile Include="Interfaces\IUnitOfWork.cs" />
126125
<Compile Include="Interfaces\Repositories\Business\IAccountRepository.cs" />

Core/Interfaces/IComplete.cs

Lines changed: 0 additions & 9 deletions
This file was deleted.

Core/Interfaces/IUnitOfWork.cs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,6 @@ namespace Core.Interfaces
88
{
99
public interface IUnitOfWork : IDisposable
1010
{
11-
IAccountRepository Accounts { get; }
12-
IContactRepository Contacts { get; }
13-
IAssetRepository Assets { get; }
14-
IBondRepository Bonds { get; }
15-
IPartnerRepository Partners { get; }
16-
IInstitutionRepository Institutions { get; }
17-
IInstitutionRepository Banks { get; }
18-
ICurrencyRepository Currencies { get; }
19-
ICountryRepository Countries { get; }
20-
IMessageRepository Messages { get; }
21-
IPortfolioRepository Portfolios { get; }
22-
IReportRepository Reports { get; }
23-
IExchangeRateRepository ExchangeRates { get; }
24-
IReturnRepository Returns { get; }
25-
IReturnRepository HoldingPeriodReturns { get; }
26-
ITileWidgetRepository TileWidgets { get; }
2711
Task<int> CompleteAsync();
2812
}
2913
}

Core/Services/AssetService.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ public class AssetService : IAssetService
1616
private readonly IAssetRepository _assetRepository;
1717
private readonly IBondRepository _bondRepository;
1818

19-
public AssetService(IUnitOfWork unitOfWork)
19+
public AssetService(IAssetRepository assetRepository, IBondRepository bondRepository)
2020
{
21-
_assetRepository = unitOfWork.Assets;
22-
_bondRepository = unitOfWork.Bonds;
21+
_assetRepository = assetRepository;
22+
_bondRepository = bondRepository;
2323
}
2424

2525
public decimal? GetPortfolioAssetReturnsForPeriod(List<Tuple<DateTime,DateTime>> calculationPeriods, Portfolio portfolio, Asset asset)

Infrastructure/Infrastructure.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,10 @@
229229
<Compile Include="Repositories\Business\InstitutionRepository.cs" />
230230
<Compile Include="Repositories\Business\PortfolioRepository.cs" />
231231
<Compile Include="Repositories\Repository.cs" />
232+
<Compile Include="Serialization\JsonContractResolvers\AccountContractResolver.cs" />
233+
<Compile Include="Serialization\JsonContractResolvers\AssetContractResolver.cs" />
234+
<Compile Include="Serialization\JsonContractResolvers\ContactContractResolver.cs" />
232235
<Compile Include="Services\SessionService.cs" />
233-
<Compile Include="Services\LocalizationService.cs" />
234236
<Compile Include="UnitOfWork.cs" />
235237
</ItemGroup>
236238
<ItemGroup>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System.Reflection;
2+
using Newtonsoft.Json;
3+
using Newtonsoft.Json.Serialization;
4+
5+
namespace Infrastructure.Serialization.JsonContractResolvers
6+
{
7+
public class AccountContractResolver : DefaultContractResolver
8+
{
9+
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
10+
{
11+
var property = base.CreateProperty(member, memberSerialization);
12+
13+
if (property.PropertyName == "Accounts" || property.PropertyName == "Contacts")
14+
{
15+
property.ShouldSerialize = i => false;
16+
}
17+
return property;
18+
}
19+
}
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System.Reflection;
2+
using Newtonsoft.Json;
3+
using Newtonsoft.Json.Serialization;
4+
5+
namespace Infrastructure.Serialization.JsonContractResolvers
6+
{
7+
public class AssetContractResolver : DefaultContractResolver
8+
{
9+
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
10+
{
11+
var property = base.CreateProperty(member, memberSerialization);
12+
13+
if (property.PropertyName == "Assets")
14+
{
15+
property.ShouldSerialize = i => false;
16+
}
17+
return property;
18+
}
19+
}
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System.Reflection;
2+
using Newtonsoft.Json;
3+
using Newtonsoft.Json.Serialization;
4+
5+
namespace Infrastructure.Serialization.JsonContractResolvers
6+
{
7+
public class ContactContractResolver : DefaultContractResolver
8+
{
9+
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
10+
{
11+
var property = base.CreateProperty(member, memberSerialization);
12+
13+
if (property.PropertyName == "Contacts")
14+
{
15+
property.ShouldSerialize = i => false;
16+
}
17+
return property;
18+
}
19+
}
20+
}

Infrastructure/Services/LocalizationService.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.

Infrastructure/UnitOfWork.cs

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,17 @@
11
using System.Threading.Tasks;
22
using Core.Interfaces;
3-
using Core.Interfaces.Repositories.BaseData;
4-
using Core.Interfaces.Repositories.Business;
5-
using Core.Interfaces.Repositories.System;
6-
using Infrastructure.Repositories.BaseData;
7-
using Infrastructure.Repositories.Business;
8-
using Infrastructure.Repositories.System;
93

104
namespace Infrastructure
115
{
12-
public class UnitOfWork : IUnitOfWork, IComplete
6+
public class UnitOfWork : IUnitOfWork
137
{
148
private readonly ApplicationDbContext _context;
159

1610
public UnitOfWork(ApplicationDbContext context)
1711
{
1812
_context = context;
19-
20-
Accounts = new AccountRepository(_context);
21-
Assets = new AssetRepository(_context);
22-
Bonds = new BondRepository(_context);
23-
Contacts = new ContactRepository(_context);
24-
Partners = new PartnerRepository(_context);
25-
Institutions = new InstitutionRepository(_context);
26-
Banks = new InstitutionRepository(_context);
27-
Currencies = new CurrencyRepository(_context);
28-
Countries = new CountryRepository(_context);
29-
Messages = new MessageRepository(_context);
30-
Portfolios = new PortfolioRepository(_context);
31-
Reports = new ReportRepository(_context);
32-
ExchangeRates = new ExchangeRateRepository(_context);
33-
Returns = new ReturnRepository(_context);
34-
HoldingPeriodReturns = new ReturnRepository(_context);
35-
TileWidgets = new TileWidgetRepository(_context);
3613
}
3714

38-
public IAccountRepository Accounts { get; }
39-
public IAssetRepository Assets { get; }
40-
public IBondRepository Bonds { get; }
41-
public IPartnerRepository Partners { get; }
42-
public IInstitutionRepository Institutions { get; }
43-
public IInstitutionRepository Banks { get; }
44-
public IContactRepository Contacts { get; }
45-
public ICurrencyRepository Currencies { get; }
46-
public ICountryRepository Countries { get; }
47-
public IMessageRepository Messages { get; }
48-
public IPortfolioRepository Portfolios { get; }
49-
public IReportRepository Reports { get; }
50-
public IExchangeRateRepository ExchangeRates { get; }
51-
public IReturnRepository Returns { get; }
52-
public IReturnRepository HoldingPeriodReturns { get; }
53-
public ITileWidgetRepository TileWidgets { get; }
54-
5515
public async Task<int> CompleteAsync()
5616
{
5717
return await _context.SaveChangesAsync();

0 commit comments

Comments
 (0)