From 2f7b84a3e3f1f51512afbb157f4b75384b4d0fbf Mon Sep 17 00:00:00 2001 From: James Heppinstall Date: Tue, 9 Jul 2024 13:21:43 +0100 Subject: [PATCH 1/7] [TS-1501] extend AssetContract with additional fields --- .../Domain/Asset/Contract.cs | 20 +++++++++++-- .../Domain/Contract/Contract.cs | 24 +++++++++++---- .../Domain/Contract/RelatedPeople.cs | 30 +++++++++++++++++++ .../Gateways/Models/Assets/QueryableAsset.cs | 8 +++-- .../Models/Assets/QueryableAssetContract.cs | 12 +++++--- .../Models/Contract/QueryableRelatedPeople.cs | 23 ++++++++++++++ 6 files changed, 102 insertions(+), 15 deletions(-) create mode 100644 Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs create mode 100644 Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableRelatedPeople.cs diff --git a/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs b/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs index 6609876..d45fdf0 100644 --- a/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs +++ b/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs @@ -6,28 +6,42 @@ namespace Hackney.Shared.HousingSearch.Domain.Asset { public class Contract { - public static Contract Create(string id, string targetId, string targetType, IEnumerable charges) + public static Contract Create(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, + bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) { return new Contract( id, targetId, targetType, - charges + startDate, + approvalDate, + isApproved, + charges, + relatedPeople ); } public Contract() { } - private Contract(string id, string targetId, string targetType, IEnumerable charges) + private Contract(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, + bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) { Id = id; TargetId = targetId; TargetType = targetType; + StartDate = startDate; + ApprovalDate = approvalDate; + IsApproved = isApproved; Charges = charges; + RelatedPeople = relatedPeople; } public string Id { get; set; } public string TargetId { get; set; } public string TargetType { get; set; } + public DateTime? StartDate { get; set; } + public DateTime? ApprovalDate { get; set; } + public bool? IsApproved { get; set; } public IEnumerable Charges { get; set; } + public IEnumerable RelatedPeople { get; set; } } } diff --git a/Hackney.Shared.HousingSearch/Domain/Contract/Contract.cs b/Hackney.Shared.HousingSearch/Domain/Contract/Contract.cs index ba8c65c..e489888 100644 --- a/Hackney.Shared.HousingSearch/Domain/Contract/Contract.cs +++ b/Hackney.Shared.HousingSearch/Domain/Contract/Contract.cs @@ -1,5 +1,4 @@ -using Hackney.Shared.HousingSearch.Domain.Contract; -using Hackney.Shared.HousingSearch.Gateways.Models.Contract; +using Hackney.Shared.HousingSearch.Gateways.Models.Contract; using System; using System.Collections.Generic; @@ -7,28 +6,43 @@ namespace Hackney.Shared.HousingSearch.Domain.Contract { public class Contract { - public static Contract Create(string id, string targetId, string targetType, IEnumerable charges) + public static Contract Create(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, + bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) { return new Contract( id, targetId, targetType, - charges + startDate, + approvalDate, + isApproved, + charges, + relatedPeople ); } public Contract() { } - private Contract(string id, string targetId, string targetType, IEnumerable charges) + private Contract(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, + bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) { Id = id; TargetId = targetId; TargetType = targetType; + StartDate = startDate; + ApprovalDate = approvalDate; + IsApproved = isApproved; + TargetType = targetType; Charges = charges; + RelatedPeople = relatedPeople; } public string Id { get; set; } public string TargetId { get; set; } public string TargetType { get; set; } + public DateTime? StartDate { get; set; } + public DateTime? ApprovalDate { get; set; } + public bool? IsApproved { get; set; } public IEnumerable Charges { get; set; } + public IEnumerable RelatedPeople { get; set; } } } diff --git a/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs b/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs new file mode 100644 index 0000000..33b0c29 --- /dev/null +++ b/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Nest; + +namespace Hackney.Shared.HousingSearch.Domain.Contract +{ + public class RelatedPeople + { + public RelatedPeople() { } + + public static RelatedPeople Create(string id, string type, string subType, string name) + { + return new RelatedPeople(id, type, subType, name); + } + + private RelatedPeople(string id, string type, string subType, string name) + { + Id = id; + Type = type; + SubType = subType; + Name = name; + } + + public string Id { get; set; } + public string Type { get; set; } + public string SubType { get; set; } + public string Name { get; set; } + } +} diff --git a/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAsset.cs b/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAsset.cs index e5d005c..99e6e88 100644 --- a/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAsset.cs +++ b/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAsset.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; using System.Linq; -using Hackney.Shared.HousingSearch.Domain.Asset; using Nest; using Asset = Hackney.Shared.HousingSearch.Domain.Asset.Asset; @@ -165,7 +163,11 @@ public Asset CreateAll() AssetContract.Id, AssetContract.TargetId, AssetContract.TargetType, - AssetContract.Charges?.Select(p => p.Create()).ToList() + AssetContract.StartDate, + AssetContract.ApprovalDate, + AssetContract.IsApproved, + AssetContract.Charges?.Select(p => p.Create()).ToList(), + AssetContract.RelatedPeople?.Select(p => p.Create()).ToList() ); return Asset.CreateAll( diff --git a/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAssetContract.cs b/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAssetContract.cs index cbc6699..2a2a45b 100644 --- a/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAssetContract.cs +++ b/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAssetContract.cs @@ -1,8 +1,7 @@ -using Hackney.Shared.HousingSearch.Gateways.Models.Contract; +using System; +using Hackney.Shared.HousingSearch.Gateways.Models.Contract; using Nest; -using System; using System.Collections.Generic; -using System.Text; namespace Hackney.Shared.HousingSearch.Gateways.Models.Assets { @@ -10,13 +9,18 @@ public class QueryableAssetContract { public Domain.Contract.Contract Create() { - return Domain.Contract.Contract.Create(Id, TargetId, TargetType, Charges); + return Domain.Contract.Contract.Create(Id, TargetId, TargetType, StartDate, ApprovalDate, IsApproved, + Charges, RelatedPeople); } [Text(Name = "id")] public string Id { get; set; } public string TargetId { get; set; } public string TargetType { get; set; } + public DateTime? StartDate { get; set; } + public DateTime? ApprovalDate { get; set; } + public bool? IsApproved { get; set; } public IEnumerable Charges { get; set; } + public IEnumerable RelatedPeople { get; set; } } } diff --git a/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableRelatedPeople.cs b/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableRelatedPeople.cs new file mode 100644 index 0000000..8a1aa9f --- /dev/null +++ b/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableRelatedPeople.cs @@ -0,0 +1,23 @@ +using Hackney.Shared.HousingSearch.Domain.Contract; +using Nest; + +namespace Hackney.Shared.HousingSearch.Gateways.Models.Contract +{ + public class QueryableRelatedPeople + { + public RelatedPeople Create() + { + return RelatedPeople.Create( + Id, + Type, + SubType, + Name + ); + } + [Text(Name = "id")] + public string Id { get; set; } + public string Type { get; set; } + public string SubType { get; set; } + public string Name { get; set; } + } +} From f5ad7fad4a03e5552ceb0df6017166ac69dcc48e Mon Sep 17 00:00:00 2001 From: James Heppinstall Date: Tue, 9 Jul 2024 13:48:39 +0100 Subject: [PATCH 2/7] [Ts-1501] formatting --- Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs | 2 +- .../Domain/Contract/RelatedPeople.cs | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs b/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs index d45fdf0..adac8ed 100644 --- a/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs +++ b/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs @@ -23,7 +23,7 @@ public static Contract Create(string id, string targetId, string targetType, Dat public Contract() { } private Contract(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, - bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) + bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) { Id = id; TargetId = targetId; diff --git a/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs b/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs index 33b0c29..72f37e0 100644 --- a/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs +++ b/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Nest; - -namespace Hackney.Shared.HousingSearch.Domain.Contract +namespace Hackney.Shared.HousingSearch.Domain.Contract { public class RelatedPeople { @@ -13,7 +8,7 @@ public static RelatedPeople Create(string id, string type, string subType, strin { return new RelatedPeople(id, type, subType, name); } - + private RelatedPeople(string id, string type, string subType, string name) { Id = id; From 4c24acbb362102a0cc26b301cb1da03c7e21b566 Mon Sep 17 00:00:00 2001 From: James Heppinstall Date: Tue, 9 Jul 2024 13:54:38 +0100 Subject: [PATCH 3/7] [TS-1501] more formatting --- .../Domain/Contract/RelatedPeople.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs b/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs index 72f37e0..d14df0e 100644 --- a/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs +++ b/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs @@ -3,12 +3,12 @@ public class RelatedPeople { public RelatedPeople() { } - + public static RelatedPeople Create(string id, string type, string subType, string name) { return new RelatedPeople(id, type, subType, name); } - + private RelatedPeople(string id, string type, string subType, string name) { Id = id; @@ -22,4 +22,4 @@ private RelatedPeople(string id, string type, string subType, string name) public string SubType { get; set; } public string Name { get; set; } } -} +} \ No newline at end of file From f9c978c716367547bbca0ad33211884dd1e93528 Mon Sep 17 00:00:00 2001 From: James Heppinstall Date: Wed, 10 Jul 2024 10:47:33 +0100 Subject: [PATCH 4/7] [TS-1501] use factory to build contract domain entity --- .../Factories/DomainFactoryTests.cs | 45 +++++++++++++- .../Domain/Asset/Contract.cs | 29 --------- .../Domain/Contract/Charges.cs | 24 +------- .../Domain/Contract/RelatedPeople.cs | 15 ----- .../Factories/DomainFactory.cs | 61 ++++++++++++++++++- .../Gateways/Models/Assets/QueryableAsset.cs | 18 ++---- .../Models/Contract/QueryableCharges.cs | 21 +------ .../Models/Contract/QueryableRelatedPeople.cs | 14 +---- 8 files changed, 113 insertions(+), 114 deletions(-) diff --git a/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs b/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs index b5201b0..4b5f54e 100644 --- a/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs +++ b/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs @@ -1,6 +1,8 @@ using AutoFixture; using FluentAssertions; using Hackney.Shared.HousingSearch.Factories; +using Hackney.Shared.HousingSearch.Gateways.Models.Assets; +using Hackney.Shared.HousingSearch.Gateways.Models.Contract; using Hackney.Shared.HousingSearch.Gateways.Models.Tenures; using Xunit; @@ -44,5 +46,46 @@ public void CanConvertQueryableTempAccommodationOfficerEntityToDomain() domainTAOfficer.FirstName.Should().Be(queryableTAOfficer.FirstName); domainTAOfficer.LastName.Should().Be(queryableTAOfficer.LastName); } + + [Fact] + public void CanConvertQueryableAssetContractEntityToDomain() + { + var queryableAssetContract = _fixture.Create(); + + var domainContract = queryableAssetContract.ToDomain(); + + domainContract.Id.Should().Be(queryableAssetContract.Id); + domainContract.TargetId.Should().Be(queryableAssetContract.TargetId); + domainContract.StartDate.Should().Be(queryableAssetContract.StartDate); + domainContract.ApprovalDate.Should().Be(queryableAssetContract.ApprovalDate); + domainContract.IsApproved.Should().Be(queryableAssetContract.IsApproved); + } + + [Fact] + public void CanConvertQueryableChargesEntityToDomain() + { + var queryableCharge = _fixture.Create(); + + var domainCharge = queryableCharge.ToDomain(); + + domainCharge.Id.Should().Be(queryableCharge.Id); + domainCharge.Type.Should().Be(queryableCharge.Type); + domainCharge.SubType.Should().Be(queryableCharge.SubType); + domainCharge.Frequency.Should().Be(queryableCharge.Frequency); + domainCharge.Amount.Should().Be(queryableCharge.Amount); + } + + [Fact] + public void CanConvertQueryableRelatedPeopleEntityToDomain() + { + var queryableRelatedPerson = _fixture.Create(); + + var domainRelatedPerson = queryableRelatedPerson.ToDomain(); + + domainRelatedPerson.Id.Should().Be(queryableRelatedPerson.Id); + domainRelatedPerson.Type.Should().Be(queryableRelatedPerson.Type); + domainRelatedPerson.SubType.Should().Be(queryableRelatedPerson.SubType); + domainRelatedPerson.Name.Should().Be(queryableRelatedPerson.Name); + } } -} +} \ No newline at end of file diff --git a/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs b/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs index adac8ed..2072b76 100644 --- a/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs +++ b/Hackney.Shared.HousingSearch/Domain/Asset/Contract.cs @@ -6,35 +6,6 @@ namespace Hackney.Shared.HousingSearch.Domain.Asset { public class Contract { - public static Contract Create(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, - bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) - { - return new Contract( - id, - targetId, - targetType, - startDate, - approvalDate, - isApproved, - charges, - relatedPeople - ); - } - public Contract() { } - - private Contract(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, - bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) - { - Id = id; - TargetId = targetId; - TargetType = targetType; - StartDate = startDate; - ApprovalDate = approvalDate; - IsApproved = isApproved; - Charges = charges; - RelatedPeople = relatedPeople; - } - public string Id { get; set; } public string TargetId { get; set; } public string TargetType { get; set; } diff --git a/Hackney.Shared.HousingSearch/Domain/Contract/Charges.cs b/Hackney.Shared.HousingSearch/Domain/Contract/Charges.cs index 1c0b17d..e21b7fc 100644 --- a/Hackney.Shared.HousingSearch/Domain/Contract/Charges.cs +++ b/Hackney.Shared.HousingSearch/Domain/Contract/Charges.cs @@ -1,31 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Hackney.Shared.HousingSearch.Domain.Contract +namespace Hackney.Shared.HousingSearch.Domain.Contract { public class Charges { - public Charges() { } - - public static Charges Create(string id, string type, string subType, string frequency, decimal? amount) - { - return new Charges(id, type, subType, frequency, amount); - } - - private Charges(string id, string type, string subType, string frequency, decimal? amount) - { - Id = id; - Type = type; - SubType = subType; - Frequency = frequency; - Amount = amount; - } - public string Id { get; set; } public string Type { get; set; } public string SubType { get; set; } public string Frequency { get; set; } public decimal? Amount { get; set; } } -} +} \ No newline at end of file diff --git a/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs b/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs index d14df0e..fffb5b4 100644 --- a/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs +++ b/Hackney.Shared.HousingSearch/Domain/Contract/RelatedPeople.cs @@ -2,21 +2,6 @@ { public class RelatedPeople { - public RelatedPeople() { } - - public static RelatedPeople Create(string id, string type, string subType, string name) - { - return new RelatedPeople(id, type, subType, name); - } - - private RelatedPeople(string id, string type, string subType, string name) - { - Id = id; - Type = type; - SubType = subType; - Name = name; - } - public string Id { get; set; } public string Type { get; set; } public string SubType { get; set; } diff --git a/Hackney.Shared.HousingSearch/Factories/DomainFactory.cs b/Hackney.Shared.HousingSearch/Factories/DomainFactory.cs index 34e8617..aec812f 100644 --- a/Hackney.Shared.HousingSearch/Factories/DomainFactory.cs +++ b/Hackney.Shared.HousingSearch/Factories/DomainFactory.cs @@ -3,9 +3,12 @@ using System.Collections.Generic; using System.Linq; using System; +using Hackney.Shared.HousingSearch.Domain.Contract; using RelatedEntity = Hackney.Shared.HousingSearch.Domain.Process.RelatedEntity; using PatchAssignment = Hackney.Shared.HousingSearch.Domain.Process.PatchAssignment; using Hackney.Shared.HousingSearch.Domain.Tenure; +using Hackney.Shared.HousingSearch.Gateways.Models.Assets; +using Hackney.Shared.HousingSearch.Gateways.Models.Contract; using Hackney.Shared.HousingSearch.Gateways.Models.Tenures; namespace Hackney.Shared.HousingSearch.Factories @@ -50,8 +53,12 @@ public static DomainProcess ToDomain(this QueryableProcess entity) PatchAssignment = entity.PatchAssignment?.ToDomain(), RelatedEntities = entity.RelatedEntities.ToDomain(), State = entity.State, - ProcessStartedAt = (entity.ProcessStartedAt is null ? (DateTime?)null : DateTime.Parse(entity.ProcessStartedAt)), - StateStartedAt = (entity.StateStartedAt is null ? (DateTime?)null : DateTime.Parse(entity.StateStartedAt)) + ProcessStartedAt = (entity.ProcessStartedAt is null + ? (DateTime?)null + : DateTime.Parse(entity.ProcessStartedAt)), + StateStartedAt = (entity.StateStartedAt is null + ? (DateTime?)null + : DateTime.Parse(entity.StateStartedAt)) }; } @@ -74,5 +81,53 @@ public static TempAccommodationOfficer ToDomain(this QueryableTempAccommodationO LastName = entity.LastName }; } + + public static Domain.Asset.Contract ToDomain(this QueryableAssetContract entity) + { + return new Domain.Asset.Contract + { + Id = entity.Id, + TargetId = entity.TargetId, + TargetType = entity.TargetType, + StartDate = entity.StartDate, + ApprovalDate = entity.ApprovalDate, + IsApproved = entity.IsApproved, + Charges = entity.Charges?.ToDomain(), + RelatedPeople = entity.RelatedPeople?.ToDomain(), + }; + } + + public static Charges ToDomain(this QueryableCharges entity) + { + return new Charges + { + Id = entity.Id, + Type = entity.Type, + SubType = entity.SubType, + Frequency = entity.Frequency, + Amount = entity.Amount + }; + } + + public static IEnumerable ToDomain(this IEnumerable charges) + { + return charges.Select(x => x.ToDomain()).ToList(); + } + + public static RelatedPeople ToDomain(this QueryableRelatedPeople entity) + { + return new RelatedPeople + { + Id = entity.Id, + Type = entity.Type, + SubType = entity.SubType, + Name = entity.Name + }; + } + + public static IEnumerable ToDomain(this IEnumerable relatedPeople) + { + return relatedPeople.Select(x => x.ToDomain()).ToList(); + } } -} +} \ No newline at end of file diff --git a/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAsset.cs b/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAsset.cs index 99e6e88..8a254db 100644 --- a/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAsset.cs +++ b/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAsset.cs @@ -1,4 +1,4 @@ -using System.Linq; +using Hackney.Shared.HousingSearch.Factories; using Nest; using Asset = Hackney.Shared.HousingSearch.Domain.Asset.Asset; @@ -157,18 +157,7 @@ public Asset CreateAll() AssetLocation.FloorNo ); - var contract = AssetContract == null - ? null - : Domain.Asset.Contract.Create( - AssetContract.Id, - AssetContract.TargetId, - AssetContract.TargetType, - AssetContract.StartDate, - AssetContract.ApprovalDate, - AssetContract.IsApproved, - AssetContract.Charges?.Select(p => p.Create()).ToList(), - AssetContract.RelatedPeople?.Select(p => p.Create()).ToList() - ); + var contract = AssetContract?.ToDomain(); return Asset.CreateAll( Id, @@ -220,6 +209,7 @@ public Asset CreateAll() public QueryableAssetManagement AssetManagement { get; set; } public QueryableAssetLocation AssetLocation { get; set; } + public QueryableAssetContract AssetContract { get; set; } } -} +} \ No newline at end of file diff --git a/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableCharges.cs b/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableCharges.cs index fe9a917..695898b 100644 --- a/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableCharges.cs +++ b/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableCharges.cs @@ -1,28 +1,13 @@ -using Hackney.Shared.HousingSearch.Domain.Contract; -using Nest; -using System; -using System.Collections.Generic; -using System.Text; +using Nest; namespace Hackney.Shared.HousingSearch.Gateways.Models.Contract { public class QueryableCharges { - public Charges Create() - { - return Charges.Create( - Id, - Type, - SubType, - Frequency, - Amount - ); - } - [Text(Name = "id")] - public string Id { get; set; } + [Text(Name = "id")] public string Id { get; set; } public string Type { get; set; } public string SubType { get; set; } public string Frequency { get; set; } public decimal? Amount { get; set; } } -} +} \ No newline at end of file diff --git a/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableRelatedPeople.cs b/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableRelatedPeople.cs index 8a1aa9f..e6ca972 100644 --- a/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableRelatedPeople.cs +++ b/Hackney.Shared.HousingSearch/Gateways/Models/Contract/QueryableRelatedPeople.cs @@ -5,19 +5,9 @@ namespace Hackney.Shared.HousingSearch.Gateways.Models.Contract { public class QueryableRelatedPeople { - public RelatedPeople Create() - { - return RelatedPeople.Create( - Id, - Type, - SubType, - Name - ); - } - [Text(Name = "id")] - public string Id { get; set; } + [Text(Name = "id")] public string Id { get; set; } public string Type { get; set; } public string SubType { get; set; } public string Name { get; set; } } -} +} \ No newline at end of file From f2348c60f4aaf7f7c1c2f7999afdc5b5c06a37cf Mon Sep 17 00:00:00 2001 From: James Heppinstall Date: Wed, 10 Jul 2024 10:54:15 +0100 Subject: [PATCH 5/7] [TS-1501] cleanup --- .../Gateways/Models/Assets/QueryableAssetContract.cs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAssetContract.cs b/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAssetContract.cs index 2a2a45b..6725640 100644 --- a/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAssetContract.cs +++ b/Hackney.Shared.HousingSearch/Gateways/Models/Assets/QueryableAssetContract.cs @@ -7,12 +7,6 @@ namespace Hackney.Shared.HousingSearch.Gateways.Models.Assets { public class QueryableAssetContract { - public Domain.Contract.Contract Create() - { - return Domain.Contract.Contract.Create(Id, TargetId, TargetType, StartDate, ApprovalDate, IsApproved, - Charges, RelatedPeople); - } - [Text(Name = "id")] public string Id { get; set; } public string TargetId { get; set; } From d452d26e3ff5ec09dba466884aacf061dcf44b8f Mon Sep 17 00:00:00 2001 From: James Heppinstall Date: Wed, 10 Jul 2024 13:55:09 +0100 Subject: [PATCH 6/7] [TS-1501] PR comments --- .../Factories/DomainFactoryTests.cs | 2 ++ .../Domain/Contract/Contract.cs | 32 +------------------ .../Factories/DomainFactory.cs | 4 +-- 3 files changed, 5 insertions(+), 33 deletions(-) diff --git a/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs b/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs index 4b5f54e..e5e5df7 100644 --- a/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs +++ b/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs @@ -59,6 +59,8 @@ public void CanConvertQueryableAssetContractEntityToDomain() domainContract.StartDate.Should().Be(queryableAssetContract.StartDate); domainContract.ApprovalDate.Should().Be(queryableAssetContract.ApprovalDate); domainContract.IsApproved.Should().Be(queryableAssetContract.IsApproved); + domainContract.Charges.Should().BeEquivalentTo(queryableAssetContract.Charges); + domainContract.RelatedPeople.Should().BeEquivalentTo(queryableAssetContract.RelatedPeople); } [Fact] diff --git a/Hackney.Shared.HousingSearch/Domain/Contract/Contract.cs b/Hackney.Shared.HousingSearch/Domain/Contract/Contract.cs index e489888..0fc8fc8 100644 --- a/Hackney.Shared.HousingSearch/Domain/Contract/Contract.cs +++ b/Hackney.Shared.HousingSearch/Domain/Contract/Contract.cs @@ -6,36 +6,6 @@ namespace Hackney.Shared.HousingSearch.Domain.Contract { public class Contract { - public static Contract Create(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, - bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) - { - return new Contract( - id, - targetId, - targetType, - startDate, - approvalDate, - isApproved, - charges, - relatedPeople - ); - } - public Contract() { } - - private Contract(string id, string targetId, string targetType, DateTime? startDate, DateTime? approvalDate, - bool? isApproved, IEnumerable charges, IEnumerable relatedPeople) - { - Id = id; - TargetId = targetId; - TargetType = targetType; - StartDate = startDate; - ApprovalDate = approvalDate; - IsApproved = isApproved; - TargetType = targetType; - Charges = charges; - RelatedPeople = relatedPeople; - } - public string Id { get; set; } public string TargetId { get; set; } public string TargetType { get; set; } @@ -45,4 +15,4 @@ private Contract(string id, string targetId, string targetType, DateTime? startD public IEnumerable Charges { get; set; } public IEnumerable RelatedPeople { get; set; } } -} +} \ No newline at end of file diff --git a/Hackney.Shared.HousingSearch/Factories/DomainFactory.cs b/Hackney.Shared.HousingSearch/Factories/DomainFactory.cs index aec812f..5b02036 100644 --- a/Hackney.Shared.HousingSearch/Factories/DomainFactory.cs +++ b/Hackney.Shared.HousingSearch/Factories/DomainFactory.cs @@ -111,7 +111,7 @@ public static Charges ToDomain(this QueryableCharges entity) public static IEnumerable ToDomain(this IEnumerable charges) { - return charges.Select(x => x.ToDomain()).ToList(); + return charges.Select(x => x.ToDomain()); } public static RelatedPeople ToDomain(this QueryableRelatedPeople entity) @@ -127,7 +127,7 @@ public static RelatedPeople ToDomain(this QueryableRelatedPeople entity) public static IEnumerable ToDomain(this IEnumerable relatedPeople) { - return relatedPeople.Select(x => x.ToDomain()).ToList(); + return relatedPeople.Select(x => x.ToDomain()); } } } \ No newline at end of file From 8de213caca9b0a8e16eee45c318ef231f70f83d7 Mon Sep 17 00:00:00 2001 From: James Heppinstall Date: Wed, 10 Jul 2024 15:38:35 +0100 Subject: [PATCH 7/7] [TS-1501] added missing assertion --- .../Factories/DomainFactoryTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs b/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs index e5e5df7..baee617 100644 --- a/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs +++ b/Hackney.Shared.HousingSearch.Tests/Factories/DomainFactoryTests.cs @@ -56,6 +56,7 @@ public void CanConvertQueryableAssetContractEntityToDomain() domainContract.Id.Should().Be(queryableAssetContract.Id); domainContract.TargetId.Should().Be(queryableAssetContract.TargetId); + domainContract.TargetType.Should().Be(queryableAssetContract.TargetType); domainContract.StartDate.Should().Be(queryableAssetContract.StartDate); domainContract.ApprovalDate.Should().Be(queryableAssetContract.ApprovalDate); domainContract.IsApproved.Should().Be(queryableAssetContract.IsApproved);