Initial commit
This commit is contained in:
parent
a1482b3e16
commit
dd9f5363c7
11
Contacts.Types.Model/Addresses/IAddress.cs
Normal file
11
Contacts.Types.Model/Addresses/IAddress.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using Connected.Data;
|
||||||
|
|
||||||
|
namespace Contacts.Types.Addresses;
|
||||||
|
|
||||||
|
public interface IAddress : IPrimaryKey<int>
|
||||||
|
{
|
||||||
|
int PostalCode { get; init; }
|
||||||
|
string Street { get; init; }
|
||||||
|
string Number { get; init; }
|
||||||
|
|
||||||
|
}
|
14
Contacts.Types.Model/Contacts.Types.Model.csproj
Normal file
14
Contacts.Types.Model/Contacts.Types.Model.csproj
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<RootNamespace>Contacts.Types</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Common.Types\Common.Types.Model\Common.Types.Model.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
5
Contacts.Types.Model/ContactsUrls.cs
Normal file
5
Contacts.Types.Model/ContactsUrls.cs
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
namespace Contacts.Types;
|
||||||
|
public static class ContactsUrls
|
||||||
|
{
|
||||||
|
public const string BusinessPartners = "/contacts/businessPartners";
|
||||||
|
}
|
28
Contacts.Types.Model/IBusinessPartner.cs
Normal file
28
Contacts.Types.Model/IBusinessPartner.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using Connected.Data;
|
||||||
|
|
||||||
|
namespace Contacts.Types;
|
||||||
|
|
||||||
|
[Flags]
|
||||||
|
public enum CustomerRoles
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Supplier = 1,
|
||||||
|
Customer = 2
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// An entity which represents a business partner.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// A business partner can be an <see cref="IContact"/>
|
||||||
|
/// or an <see cref="IOrganization"/>. An <see cref="IContact"/> is tipically a person
|
||||||
|
/// which buys products and/or services. An <see cref="IOrganization"/> is a business
|
||||||
|
/// entity which can be <see cref="CustomerRoles.Supplier"/>, <see cref="CustomerRoles.Customer"/>
|
||||||
|
/// or both.
|
||||||
|
/// </remarks>
|
||||||
|
public interface IBusinessPartner : IPrimaryKey<int>
|
||||||
|
{
|
||||||
|
int? Organization { get; init; }
|
||||||
|
int? Contact { get; init; }
|
||||||
|
|
||||||
|
CustomerRoles Roles { get; init; }
|
||||||
|
}
|
12
Contacts.Types.Model/IBusinessPartnerService.cs
Normal file
12
Contacts.Types.Model/IBusinessPartnerService.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using Connected.Annotations;
|
||||||
|
using Connected.Notifications;
|
||||||
|
using Connected.ServiceModel;
|
||||||
|
|
||||||
|
namespace Contacts.Types;
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
[ServiceUrl(ContactsUrls.BusinessPartners)]
|
||||||
|
public interface IBusinessPartnerService : IServiceNotifications<int>
|
||||||
|
{
|
||||||
|
Task<IBusinessPartner?> Select(PrimaryKeyArgs<int> args);
|
||||||
|
}
|
13
Contacts.Types.Model/IContact.cs
Normal file
13
Contacts.Types.Model/IContact.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using Connected.Data;
|
||||||
|
|
||||||
|
namespace Contacts.Types;
|
||||||
|
|
||||||
|
public interface IContact : IPrimaryKey<int>
|
||||||
|
{
|
||||||
|
string? FirstName { get; init; }
|
||||||
|
string? MiddleName { get; init; }
|
||||||
|
string? LastName { get; init; }
|
||||||
|
|
||||||
|
string? Phone { get; init; }
|
||||||
|
string? Email { get; init; }
|
||||||
|
}
|
10
Contacts.Types.Model/Organizations/IOrganization.cs
Normal file
10
Contacts.Types.Model/Organizations/IOrganization.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using Connected.Data;
|
||||||
|
|
||||||
|
namespace Contacts.Types.Organizations;
|
||||||
|
|
||||||
|
public interface IOrganization : IPrimaryKey<int>
|
||||||
|
{
|
||||||
|
string Name { get; init; }
|
||||||
|
int PrimaryAddress { get; init; }
|
||||||
|
int BillingAddress { get; init; }
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
using Connected.Data;
|
||||||
|
|
||||||
|
namespace Contacts.Types.Organizations;
|
||||||
|
|
||||||
|
public interface IOrganizationContact : IPrimaryKey<int>
|
||||||
|
{
|
||||||
|
int Organization { get; init; }
|
||||||
|
int Contact { get; init; }
|
||||||
|
}
|
9
Contacts.Types/Bootstrapper.cs
Normal file
9
Contacts.Types/Bootstrapper.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using Connected;
|
||||||
|
using Connected.Annotations;
|
||||||
|
|
||||||
|
[assembly: MicroService(MicroServiceType.Service)]
|
||||||
|
|
||||||
|
namespace Contacts.Types;
|
||||||
|
internal sealed class Bootstrapper : Startup
|
||||||
|
{
|
||||||
|
}
|
15
Contacts.Types/BusinessPartnerService.cs
Normal file
15
Contacts.Types/BusinessPartnerService.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
using Connected.ServiceModel;
|
||||||
|
using Connected.Services;
|
||||||
|
|
||||||
|
namespace Contacts.Types;
|
||||||
|
internal sealed class BusinessPartnerService : EntityService<int>, IBusinessPartnerService
|
||||||
|
{
|
||||||
|
public BusinessPartnerService(IContext context) : base(context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<IBusinessPartner?> Select(PrimaryKeyArgs<int> args)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
15
Contacts.Types/Contacts.Types.csproj
Normal file
15
Contacts.Types/Contacts.Types.csproj
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Framework\Connected.Entities\Connected.Entities.csproj" />
|
||||||
|
<ProjectReference Include="..\..\Framework\Connected.Services\Connected.Services.csproj" />
|
||||||
|
<ProjectReference Include="..\Contacts.Types.Model\Contacts.Types.Model.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
56
Customers.sln
Normal file
56
Customers.sln
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.4.33020.496
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dependencies", "Dependencies", "{AE326167-90A7-4D49-BB24-BA7DEE6A2F26}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Types.Model", "..\Common.Types\Common.Types.Model\Common.Types.Model.csproj", "{3839CE71-C1DD-467E-B1E4-8D00C3460CC5}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Contacts.Types.Model", "Contacts.Types.Model\Contacts.Types.Model.csproj", "{AA722E99-87C8-4D8F-ACB5-2F2D07669BC6}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Contacts.Types", "Contacts.Types\Contacts.Types.csproj", "{D465F1C6-42CE-445A-9CCE-5DD6D8A30055}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Entities", "..\Framework\Connected.Entities\Connected.Entities.csproj", "{31825097-E9A6-4643-9118-BE007ABEA405}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Services", "..\Framework\Connected.Services\Connected.Services.csproj", "{F254B9EC-9F32-4304-8855-17DCA60C5EC5}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{3839CE71-C1DD-467E-B1E4-8D00C3460CC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3839CE71-C1DD-467E-B1E4-8D00C3460CC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3839CE71-C1DD-467E-B1E4-8D00C3460CC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3839CE71-C1DD-467E-B1E4-8D00C3460CC5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AA722E99-87C8-4D8F-ACB5-2F2D07669BC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AA722E99-87C8-4D8F-ACB5-2F2D07669BC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AA722E99-87C8-4D8F-ACB5-2F2D07669BC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AA722E99-87C8-4D8F-ACB5-2F2D07669BC6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D465F1C6-42CE-445A-9CCE-5DD6D8A30055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D465F1C6-42CE-445A-9CCE-5DD6D8A30055}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D465F1C6-42CE-445A-9CCE-5DD6D8A30055}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D465F1C6-42CE-445A-9CCE-5DD6D8A30055}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{31825097-E9A6-4643-9118-BE007ABEA405}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{31825097-E9A6-4643-9118-BE007ABEA405}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{31825097-E9A6-4643-9118-BE007ABEA405}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{31825097-E9A6-4643-9118-BE007ABEA405}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{F254B9EC-9F32-4304-8855-17DCA60C5EC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F254B9EC-9F32-4304-8855-17DCA60C5EC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F254B9EC-9F32-4304-8855-17DCA60C5EC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F254B9EC-9F32-4304-8855-17DCA60C5EC5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{3839CE71-C1DD-467E-B1E4-8D00C3460CC5} = {AE326167-90A7-4D49-BB24-BA7DEE6A2F26}
|
||||||
|
{31825097-E9A6-4643-9118-BE007ABEA405} = {AE326167-90A7-4D49-BB24-BA7DEE6A2F26}
|
||||||
|
{F254B9EC-9F32-4304-8855-17DCA60C5EC5} = {AE326167-90A7-4D49-BB24-BA7DEE6A2F26}
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {89478694-8DAA-4C4E-8047-8B516C5E26AE}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
Loading…
x
Reference in New Issue
Block a user