Initial commit

develop
Matija Koželj 2 years ago
parent a1482b3e16
commit dd9f5363c7

@ -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; }
}

@ -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>

@ -0,0 +1,5 @@
namespace Contacts.Types;
public static class ContactsUrls
{
public const string BusinessPartners = "/contacts/businessPartners";
}

@ -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; }
}

@ -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);
}

@ -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; }
}

@ -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; }
}

@ -0,0 +1,9 @@
using Connected;
using Connected.Annotations;
[assembly: MicroService(MicroServiceType.Service)]
namespace Contacts.Types;
internal sealed class Bootstrapper : Startup
{
}

@ -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();
}
}

@ -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>

@ -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…
Cancel
Save