first things

This commit is contained in:
Roland Fieger
2021-09-22 12:37:40 +02:00
parent 074df0adec
commit 5e15db793b
53 changed files with 2065 additions and 229 deletions

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.BusinessModels
{
public enum GeneralResults
{
Success = 0,
DatabaseError = 1,
GeneralError = 2,
LogicWarning = 3,
Created = 4,
Updated = 5,
Deleted = 6
}
public class ResultObject
{
public GeneralResults GeneralResult { get; set; } = GeneralResults.Success;
public string UserMessage { get; set; }
public string ServerMessage { get; set; }
public string StackTrace { get; set; }
}
public class DataResult<T> : ResultObject
{
public T Data { get; set; }
public long TotalCount { get; set; }
public long Skip { get; set; }
public long Take { get; set; }
public TimeSpan Duration { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
namespace Datamodels.BusinessModels
{
public enum SortDirections
{
Ascending,
Descending
}
public sealed class SortModel
{
public int SortFieldOrder { get; set; }
public string SortFieldName { get; set; }
public SortDirections SortDirection { get; set; } = SortDirections.Ascending;
}
}

View File

@@ -0,0 +1,18 @@
using System;
using Datamodels.Lookups;
namespace Datamodels.DatabaseModels
{
public class Address: IEntityClass
{
public long Id { get; set; }
public string StreetName { get; set; }
public int StreetNumber { get; set; }
public string Zip { get; set; }
public string City { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime ChangedAt { get; set; }
public LookupValue AddressType { get; set; } //something like "Job" or "Private"
public Person Person { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using Datamodels.Lookups;
namespace Datamodels.DatabaseModels
{
public class Communication
{
public long Id { get; set; }
public string CommunicationValue { get; set; } //mobile phone, home phone, job mail, etc.
public LookupValue CommunicationType { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime ChangedAt { get; set; }
public Person Person { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.DatabaseModels
{
public interface IEntityClass
{
}
}

View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using Datamodels.Lookups;
namespace Datamodels.DatabaseModels
{
public class Person
{
public long Id { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public DateTime? Birthday { get; set; }
public bool IsActive { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime ChangedAt { get; set; }
public LookupValue Gender { get; set; }
public List<Address> Addresses { get; set; }
public List<Communication> Communications { get; set; }
}
}

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.Enums
{
public enum FieldTypes
{
String,
Integer,
Double,
Boolean,
DateTime,
Currency,
Blob
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.Enums
{
public enum JoinTypes
{
And,
Or
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.Enums
{
public enum PhraseOperators
{
Equal,
NotEqual,
LowerThan,
LowerThanOrEqual,
GreaterThan,
GreaterThanOrEqual,
StartsWith,
Contains,
EndsWith
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.Enums
{
public enum SearchTypes
{
Phrase,
Range,
Terms
}
}

View File

@@ -0,0 +1,12 @@
using System.Collections.Generic;
namespace Datamodels.Lookups
{
public sealed class LookupCategory
{
public long Id { get; set; }
public string CategoryName { get; set; }
public bool IsActive { get; set; } = true;
public List<LookupValue> LookupValues { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
using Newtonsoft.Json;
namespace Datamodels.Lookups
{
public sealed class LookupValue {
public long Id { get; set; }
public string Value { get; set; }
public bool IsActive { get; set; } = true;
[JsonIgnore]
public LookupCategory LookupCategory { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using Datamodels.Enums;
using System;
using System.Collections.Generic;
namespace Datamodels.SearchModels
{
public sealed class FieldModel
{
public string FieldName { get; set; }
public string FieldAlias { get; set; }
public FieldTypes FieldType { get; set; }
public List<SearchDescription> SearchDescriptions { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.SearchModels
{
public class FilterModel
{
public List<TableModel> TableDescriptions { get; set; }
public long Skip { get; set; }
public long Take { get; set; }
}
}

View File

@@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.SearchModels
{
public class ResultDataModel
{
public List<ResultRowModel> ResultRows { get; set; }
}
}

View File

@@ -0,0 +1,21 @@
using Datamodels.Enums;
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.SearchModels
{
/// <summary>
/// Field base query Result
/// </summary>
public class ResultFieldModel
{
public FieldTypes FieldType { get; set; }
public string FieldContent { get; set; }
public int FieldContentInt { get; set; }
public DateTime FieldContentDate { get; set; }
public Decimal FieldContentDecimal { get; set; }
public float FieldContentFloat { get; set; }
public string FieldContentString { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.SearchModels
{
public class ResultModel
{
public FilterModel SearchModel { get; set; }
public ResultDataModel ResultData { get; set; }
}
}

View File

@@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.SearchModels
{
public class ResultRowModel
{
public List<ResultFieldModel> RowFields { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using Datamodels.Enums;
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.SearchModels
{
public class SearchDescription
{
public SearchObject SearchData { get; set; }
public JoinTypes JoinType { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using Datamodels.Enums;
using System;
using System.Collections.Generic;
using System.Text;
namespace Datamodels.SearchModels
{
public class SearchObject
{
public List<string> Values { get; set; }
public SearchTypes SearchType { get; set; }
public PhraseOperators PhraseOperator { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace Datamodels.SearchModels
{
public sealed class TableModel
{
public string TableName { get; set; }
public string TableAlias { get; set; }
public List<FieldModel> Fields { get; set; } = new List<FieldModel>();
}
}