Add specialized objects to model
This commit is contained in:
parent
5d2e111d77
commit
357b7637ce
@ -4,6 +4,7 @@
|
|||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
|
<NoWarn>$(NoWarn);1591;1573</NoWarn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -16,10 +17,6 @@
|
|||||||
<PackageReference Include="IdentityServer4" Version="3.1.4" />
|
<PackageReference Include="IdentityServer4" Version="3.1.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Controllers" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="../InternshipSystem.Core/InternshipSystem.Core.csproj" />
|
<ProjectReference Include="../InternshipSystem.Core/InternshipSystem.Core.csproj" />
|
||||||
<ProjectReference Include="../InternshipSystem.Repository/InternshipSystem.Repository.csproj" />
|
<ProjectReference Include="../InternshipSystem.Repository/InternshipSystem.Repository.csproj" />
|
||||||
|
@ -6,7 +6,7 @@ namespace InternshipSystem.Core
|
|||||||
public class Company
|
public class Company
|
||||||
{
|
{
|
||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
public string Nip { get; set; }
|
public Nip Nip { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public RangeOfActivity Range { get; set; }
|
public RangeOfActivity Range { get; set; }
|
||||||
public List<BranchOffice> Branches { get; set; }
|
public List<BranchOffice> Branches { get; set; }
|
||||||
|
@ -5,6 +5,6 @@
|
|||||||
public string FirstName { get; set; }
|
public string FirstName { get; set; }
|
||||||
public string LastName { get; set; }
|
public string LastName { get; set; }
|
||||||
public string Email { get; set; }
|
public string Email { get; set; }
|
||||||
public string PhoneNumber { get; set; }
|
public PhoneNumber PhoneNumber { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
18
src/InternshipSystem.Core/ValueObject/Nip.cs
Normal file
18
src/InternshipSystem.Core/ValueObject/Nip.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
namespace InternshipSystem.Core
|
||||||
|
{
|
||||||
|
public struct Nip
|
||||||
|
{
|
||||||
|
private readonly string _nip;
|
||||||
|
|
||||||
|
public Nip(string nip)
|
||||||
|
{
|
||||||
|
_nip = nip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static implicit operator string(Nip nip) =>
|
||||||
|
nip._nip;
|
||||||
|
|
||||||
|
public static implicit operator Nip(string maybeNip) =>
|
||||||
|
new Nip(maybeNip);
|
||||||
|
}
|
||||||
|
}
|
18
src/InternshipSystem.Core/ValueObject/PhoneNumber.cs
Normal file
18
src/InternshipSystem.Core/ValueObject/PhoneNumber.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
namespace InternshipSystem.Core
|
||||||
|
{
|
||||||
|
public struct PhoneNumber
|
||||||
|
{
|
||||||
|
private readonly string _phoneNumber;
|
||||||
|
|
||||||
|
public PhoneNumber(string phoneNumber)
|
||||||
|
{
|
||||||
|
_phoneNumber = phoneNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static implicit operator string(PhoneNumber number) =>
|
||||||
|
number._phoneNumber;
|
||||||
|
|
||||||
|
public static implicit operator PhoneNumber(string maybeNumber) =>
|
||||||
|
new PhoneNumber(maybeNumber);
|
||||||
|
}
|
||||||
|
}
|
@ -21,11 +21,21 @@ namespace InternshipSystem.Repository
|
|||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
|
modelBuilder.Entity<Company>()
|
||||||
|
.Property(company => company.Nip)
|
||||||
|
.HasConversion<string>(
|
||||||
|
nip => nip,
|
||||||
|
s => (Nip)s);
|
||||||
|
|
||||||
modelBuilder.Entity<BranchOffice>()
|
modelBuilder.Entity<BranchOffice>()
|
||||||
.OwnsOne(bo => bo.Address);
|
.OwnsOne(bo => bo.Address);
|
||||||
|
|
||||||
modelBuilder.Entity<InternshipProgram>()
|
modelBuilder.Entity<InternshipProgram>()
|
||||||
.OwnsOne(ip => ip.Mentor);
|
.OwnsOne(ip => ip.Mentor)
|
||||||
|
.Property(mentor => mentor.PhoneNumber)
|
||||||
|
.HasConversion<string>(
|
||||||
|
number => number,
|
||||||
|
s => (PhoneNumber)s);
|
||||||
|
|
||||||
modelBuilder.Entity<ProgramSubject>(builder =>
|
modelBuilder.Entity<ProgramSubject>(builder =>
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user