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