ICoreBizObjectModel for all

This commit is contained in:
2020-05-17 16:54:15 +00:00
parent d85497aab6
commit cc828894a5
31 changed files with 69 additions and 36 deletions

View File

@@ -111,6 +111,7 @@ namespace AyaNova.Biz
//AyaNova.Biz.BizRoles
//AyaNova.Biz.BizObjectNameFetcherDIRECT
//and in the CLIENT in ayatype.js
//and their model needs to have the ICoreBizObjectModel interface
//and need TRANSLATION KEYS because any type could show in the event log at the client end

View File

@@ -7,7 +7,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class Contract
public class Contract : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class Customer
public class Customer : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class HeadOffice
public class HeadOffice : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -7,10 +7,14 @@ namespace AyaNova.Models
/// </summary>
internal interface ICoreBizObjectModel
{
public long Id {get;set;}
//Note: almost all biz objects support all these propertys, the exceptions are extremely few so auto-implementing them here
//this is not a public api so I don't care about the "contract" aspect, just practicality
//didn't want to end up with a zillion interfaces for all manner of stuff
public long Id { get; set; }
public uint Concurrency { get; set; }
public string Wiki { get; set; }
public string Name { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
public bool? Active { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
public string CustomFields { get; set; }
public List<string> Tags { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class LoanUnit
public class LoanUnit : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class PM
public class PM : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -8,7 +8,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class PMItem
public class PMItem : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class PMTemplate
public class PMTemplate : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class PMTemplateItem
public class PMTemplateItem : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class Part
public class Part : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class Project
public class Project : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class PurchaseOrder
public class PurchaseOrder : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -8,7 +8,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class Quote
public class Quote : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -8,7 +8,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class QuoteItem
public class QuoteItem : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class QuoteTemplate
public class QuoteTemplate : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class QuoteTemplateItem
public class QuoteTemplateItem : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class Unit
public class Unit : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class UnitModel
public class UnitModel : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class Vendor
public class Vendor : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -4,7 +4,7 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemExpense
public class WorkOrderItemExpense : ICoreBizObjectModel
{
public WorkOrderItemExpense()
{
@@ -19,5 +19,9 @@ namespace AyaNova.Models
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
// //Just to conform with interface, it's rare and easier to do this
// [System.ComponentModel.DataAnnotations.Schema.NotMapped]
// public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -4,7 +4,7 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemLabor
public class WorkOrderItemLabor : ICoreBizObjectModel
{
public WorkOrderItemLabor()
{
@@ -19,5 +19,8 @@ namespace AyaNova.Models
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
//Just to conform with interface, it's rare and easier to do this
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -4,7 +4,7 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemLoan
public class WorkOrderItemLoan : ICoreBizObjectModel
{
public WorkOrderItemLoan()
{
@@ -19,5 +19,8 @@ namespace AyaNova.Models
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
//Just to conform with interface, it's rare and easier to do this
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -4,7 +4,7 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemPart
public class WorkOrderItemPart : ICoreBizObjectModel
{
public WorkOrderItemPart()
{
@@ -19,5 +19,8 @@ namespace AyaNova.Models
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
//Just to conform with interface, it's rare and easier to do this
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -4,7 +4,7 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemPartRequest
public class WorkOrderItemPartRequest : ICoreBizObjectModel
{
public WorkOrderItemPartRequest()
{
@@ -19,5 +19,8 @@ namespace AyaNova.Models
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
//Just to conform with interface, it's rare and easier to do this
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -4,7 +4,7 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemScheduledUser
public class WorkOrderItemScheduledUser : ICoreBizObjectModel
{
public WorkOrderItemScheduledUser()
{
@@ -19,5 +19,8 @@ namespace AyaNova.Models
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
//Just to conform with interface, it's rare and easier to do this
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -4,7 +4,7 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemTask
public class WorkOrderItemTask : ICoreBizObjectModel
{
public WorkOrderItemTask()
{
@@ -19,5 +19,8 @@ namespace AyaNova.Models
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
//Just to conform with interface, it's rare and easier to do this
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -4,7 +4,7 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemTravel
public class WorkOrderItemTravel : ICoreBizObjectModel
{
public WorkOrderItemTravel()
{
@@ -19,5 +19,8 @@ namespace AyaNova.Models
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
//Just to conform with interface, it's rare and easier to do this
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -4,20 +4,23 @@ using Newtonsoft.Json;
namespace AyaNova.Models
{
public class WorkOrderItemUnit
public class WorkOrderItemUnit : ICoreBizObjectModel
{
public WorkOrderItemUnit()
public WorkOrderItemUnit()
{
Tags = new List<string>();
}
public long Id { get; set; }
public uint Concurrency { get; set; }
public uint Concurrency { get; set; }
public string Notes { get; set; }
public string CustomFields { get; set; }
public List<string> Tags { get; set; }
public List<string> Tags { get; set; }
[Required]
public long WorkOrderItemId { get; set; }
public long WorkOrderItemId { get; set; }
[JsonIgnore]
public WorkOrderItem WorkOrderItem { get; set; }
//Just to conform with interface, it's rare and easier to do this
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
}//eoc
}//eons

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class WorkOrderTemplate
public class WorkOrderTemplate : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }

View File

@@ -9,7 +9,7 @@ namespace AyaNova.Models
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class WorkOrderTemplateItem
public class WorkOrderTemplateItem : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }