Skip to content

Commit 64ded11

Browse files
committed
Remove Interfaces from Models
Was causing too many issues with not being able to instantiate interface
1 parent b8d4909 commit 64ded11

Some content is hidden

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

44 files changed

+231
-191
lines changed

src/ClassLibrary1/Class1.cs

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
using System;
2+
3+
namespace ClassLibrary1
4+
{
5+
public class Class1
6+
{
7+
}
8+
}
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netcoreapp2.1</TargetFramework>
5+
</PropertyGroup>
6+
7+
</Project>

src/versioning_manager.api/Controllers/OrganizationController.cs

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using Microsoft.AspNetCore.Mvc;
5-
using versioning_manager.api.Models;
6-
using versioning_manager.contracts.Models;
75
using versioning_manager.contracts.Services;
6+
using versioning_manager.data.Models;
87

98
namespace versioning_manager.api.Controllers
109
{
@@ -19,11 +18,11 @@ public OrganizationController(IOrganizationService service)
1918
}
2019

2120
[HttpGet]
22-
public ActionResult<List<IOrganization>> GetAll()
21+
public ActionResult<List<Organization>> GetAll()
2322
{
2423
try
2524
{
26-
return _service.GetAll().ToList(); ;
25+
return _service.GetAll().ToList();
2726
}
2827
catch (Exception ex)
2928
{

src/versioning_manager.api/Controllers/ProductController.cs

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Linq;
4-
using LiteDB;
54
using Microsoft.AspNetCore.Mvc;
6-
using versioning_manager.api.Models;
7-
using versioning_manager.contracts.Models;
85
using versioning_manager.contracts.Services;
6+
using versioning_manager.data.Models;
97

108
namespace versioning_manager.api.Controllers
119
{
@@ -19,7 +17,7 @@ public ProductController(IProductService service)
1917
_service = service;
2018
}
2119

22-
public ActionResult<List<IProduct>> GetProducts()
20+
public ActionResult<List<Product>> GetProducts()
2321
{
2422
try
2523
{

src/versioning_manager.api/Controllers/VersionController.cs

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
using System;
21
using System.Collections.Generic;
3-
using System.Threading.Tasks;
42
using Microsoft.AspNetCore.Mvc;
5-
using versioning_manager.api.Models;
6-
using versioning_manager.contracts.Models;
73
using versioning_manager.contracts.Services;
4+
using versioning_manager.data.Models;
85

96
namespace versioning_manager.api.Controllers
107
{
@@ -19,14 +16,14 @@ public VersionController(IVersionService service)
1916
_service = service;
2017
}
2118

22-
[HttpGet()]
23-
public IEnumerable<IVersionDetail> GetVersions([FromBody] IVersionRequest versionRequests)
19+
[HttpPost("show")]
20+
public IEnumerable<VersionDetail> GetVersions(VersionRequest versionRequests)
2421
{
2522
return _service.GetVersions(versionRequests);
2623
}
2724

2825
[HttpPatch("increment")]
29-
public IVersionDetail IncrementVersion(IVersionRequest versionRequests)
26+
public VersionDetail IncrementVersion(VersionRequest versionRequests)
3027
{
3128
return _service.IncrementVersion(versionRequests);
3229
}

src/versioning_manager.api/Controllers/VersionExtention.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22

33
namespace versioning_manager.api.Controllers
44
{

src/versioning_manager.api/Models/Product.cs

-18
This file was deleted.

src/versioning_manager.api/Models/VersionDetails.cs

-22
This file was deleted.

src/versioning_manager.api/MyData.db

12 KB
Binary file not shown.

src/versioning_manager.api/Services/OrganizationService.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Collections.Generic;
22
using versioning_manager.contracts.Data;
3-
using versioning_manager.contracts.Models;
43
using versioning_manager.contracts.Services;
4+
using versioning_manager.data.Models;
55

66
namespace versioning_manager.api.Services
77
{
@@ -13,17 +13,17 @@ public OrganizationService(IOrganizationRepository repository)
1313
_repository = repository;
1414
}
1515

16-
public IEnumerable<IOrganization> GetAll()
16+
public IEnumerable<Organization> GetAll()
1717
{
1818
return _repository.GetAll();
1919
}
2020

21-
public IOrganization Get(int id)
21+
public Organization Get(int id)
2222
{
2323
return _repository.Get(id);
2424
}
2525

26-
public IOrganization Add(IOrganization org)
26+
public Organization Add(Organization org)
2727
{
2828
return _repository.Add(org);
2929
}

src/versioning_manager.api/Services/ProductService.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Collections.Generic;
22
using versioning_manager.contracts.Data;
3-
using versioning_manager.contracts.Models;
43
using versioning_manager.contracts.Services;
4+
using versioning_manager.data.Models;
55

66
namespace versioning_manager.api.Services
77
{
@@ -13,12 +13,12 @@ public ProductService(IProductRepository repository)
1313
_repository = repository;
1414
}
1515

16-
public IEnumerable<IProduct> GetAll()
16+
public IEnumerable<Product> GetAll()
1717
{
1818
return _repository.GetAll();
1919
}
2020

21-
public void Add(IProduct product)
21+
public void Add(Product product)
2222
{
2323
_repository.Add(product);
2424
}

src/versioning_manager.api/Services/VersionDetailExtensions.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using System.Collections.Generic;
1+
using System.Collections.Generic;
22
using System.Linq;
3-
using versioning_manager.contracts.Models;
3+
using versioning_manager.data.Models;
44

55
namespace versioning_manager.api.Services
66
{
77
public static class VersionDetailExtensions
88
{
9-
public static IEnumerable<IVersionDetail> WithMajorVersion(this IEnumerable<IVersionDetail> versionDetails, int? major)
9+
public static IEnumerable<VersionDetail> WithMajorVersion(this IEnumerable<VersionDetail> versionDetails, int? major)
1010
{
1111
var result = versionDetails;
1212

@@ -18,7 +18,7 @@ public static IEnumerable<IVersionDetail> WithMajorVersion(this IEnumerable<IVer
1818
return result;
1919
}
2020

21-
public static IEnumerable<IVersionDetail> WithMinorVersion(this IEnumerable<IVersionDetail> versionDetails, int? minor)
21+
public static IEnumerable<VersionDetail> WithMinorVersion(this IEnumerable<VersionDetail> versionDetails, int? minor)
2222
{
2323
var result = versionDetails;
2424

Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Linq;
4+
using versioning_manager.api.Controllers;
45
using versioning_manager.contracts.Data;
5-
using versioning_manager.contracts.Models;
66
using versioning_manager.contracts.Services;
7+
using versioning_manager.data.Models;
78

89
namespace versioning_manager.api.Services
910
{
@@ -15,24 +16,68 @@ public VersionService(IVersionDetailRepository repository)
1516
_repository = repository;
1617
}
1718

18-
public IEnumerable<IVersionDetail> GetVersions(IVersionRequest request)
19+
public IEnumerable<VersionDetail> GetVersions(IVersionRequest request)
1920
{
20-
return _repository.GetByProductId(request.ProductId)
21+
var listOfVersions = _repository.GetByProductId(request.ProductId);
22+
return listOfVersions
2123
.WithMajorVersion(request.Major)
2224
.WithMinorVersion(request.Minor);
2325
}
2426

25-
public IVersionDetail IncrementVersion(IVersionRequest request)
27+
public VersionDetail IncrementVersion(IVersionRequest request)
2628
{
2729
var versions = GetVersions(request);
2830

2931
var versionList = versions.OrderBy(x => x).Reverse();
3032

31-
// TODO: Change this to return null instead of exception
33+
Version version = null;
3234
if (versionList.Count() == 0)
33-
throw new Exception("No Versions available.");
35+
{
36+
if (!request.Major.HasValue && request.Minor.HasValue)
37+
throw new ArgumentException("Cannot pass a Minor version without Major version");
3438

35-
return versionList.First();
39+
if (request.Major.HasValue && !request.Minor.HasValue)
40+
{
41+
version = new Version(request.Major.Value, 0);
42+
}
43+
else if (request.Major.HasValue && request.Minor.HasValue)
44+
{
45+
version = new Version(request.Major.Value, request.Minor.Value);
46+
}
47+
else
48+
{
49+
version = new Version(1, 0);
50+
}
51+
}
52+
else {
53+
version = versionList.First().Version;
54+
55+
if(!request.Major.HasValue && !request.Minor.HasValue)
56+
{
57+
version = version.IncrementBuild();
58+
}
59+
else if (!request.Major.HasValue && request.Minor.HasValue)
60+
{
61+
version = version.IncrementMinor();
62+
}
63+
else {
64+
version = version.IncrementMajor();
65+
}
66+
}
67+
68+
var versionDetail = new VersionDetail
69+
{
70+
Version = version,
71+
CreatedDate = DateTime.Now,
72+
Product = new Product
73+
{
74+
Id = request.ProductId
75+
}
76+
};
77+
78+
var created = _repository.Add(versionDetail);
79+
80+
return created;
3681
}
3782
}
3883
}

src/versioning_manager.api/versioning_manager.api.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<ItemGroup>
1616
<ProjectReference Include="..\versioning_manager.data.litedb\versioning_manager.data.litedb.csproj" />
1717
<ProjectReference Include="..\versioning_manager.contracts\versioning_manager.contracts.csproj" />
18+
<ProjectReference Include="..\versioning_manager.data.model\versioning_manager.data.model.csproj" />
1819
</ItemGroup>
1920

2021
</Project>
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
using System.Collections.Generic;
2-
using versioning_manager.contracts.Models;
2+
using versioning_manager.data.Models;
33

44
namespace versioning_manager.contracts.Data
55
{
66
public interface IOrganizationRepository
77
{
8-
IEnumerable<IOrganization> GetAll();
8+
IEnumerable<Organization> GetAll();
99

10-
IOrganization Get(int id);
10+
Organization Get(int id);
1111

12-
IOrganization Add(IOrganization org);
12+
Organization Add(Organization org);
1313
}
1414
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using System.Collections.Generic;
2-
using versioning_manager.contracts.Models;
1+
using System.Collections.Generic;
2+
using versioning_manager.data.Models;
33

44
namespace versioning_manager.contracts.Data
55
{
66
public interface IProductRepository
77
{
8-
IEnumerable<IProduct> GetAll();
8+
IEnumerable<Product> GetAll();
99

10-
void Add(IProduct product);
10+
void Add(Product product);
1111
}
1212
}
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
using System;
21
using System.Collections.Generic;
3-
using versioning_manager.contracts.Models;
2+
using versioning_manager.data.Models;
43

54
namespace versioning_manager.contracts.Data
65
{
76
public interface IVersionDetailRepository
87
{
9-
IEnumerable<IVersionDetail> GetAll();
8+
IEnumerable<VersionDetail> GetAll();
109

11-
IEnumerable<IVersionDetail> GetByProductId(int productId);
10+
IEnumerable<VersionDetail> GetByProductId(int productId);
1211

13-
void Add(IVersionDetail version);
12+
VersionDetail Add(VersionDetail version);
1413
}
1514

1615
}

src/versioning_manager.contracts/Models/IOrganization.cs

-8
This file was deleted.

src/versioning_manager.contracts/Models/IProduct.cs

-12
This file was deleted.

0 commit comments

Comments
 (0)