From c249fd5400e4ca4094b450e139448e047f2da266 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 17 Jul 2020 00:38:08 +0000 Subject: [PATCH] --- server/AyaNova/models/Contract.cs | 15 ++++++++++----- server/AyaNova/models/Customer.cs | 16 ++++++++++------ server/AyaNova/models/HeadOffice.cs | 16 ++++++++++------ server/AyaNova/models/ICoreBizObjectModel.cs | 7 +++++-- server/AyaNova/models/LoanUnit.cs | 16 ++++++++++------ server/AyaNova/models/PM.cs | 8 ++------ server/AyaNova/models/PMItem.cs | 19 ++++++++----------- server/AyaNova/models/PMTemplate.cs | 16 ++++++++++------ server/AyaNova/models/PMTemplateItem.cs | 16 ++++++++++------ server/AyaNova/models/Part.cs | 16 ++++++++++------ server/AyaNova/models/Project.cs | 19 +++++++++++-------- server/AyaNova/models/PurchaseOrder.cs | 16 ++++++++++------ server/AyaNova/models/Quote.cs | 7 ++----- server/AyaNova/models/QuoteItem.cs | 8 +++----- server/AyaNova/models/QuoteTemplate.cs | 16 ++++++++++------ server/AyaNova/models/QuoteTemplateItem.cs | 16 ++++++++++------ server/AyaNova/models/Unit.cs | 16 ++++++++++------ server/AyaNova/models/UnitModel.cs | 16 ++++++++++------ server/AyaNova/models/User.cs | 11 +++++++++-- server/AyaNova/models/Vendor.cs | 16 ++++++++++------ server/AyaNova/models/Widget.cs | 6 +++++- server/AyaNova/models/WorkOrder.cs | 7 +++++++ server/AyaNova/models/WorkOrderItem.cs | 8 ++++++++ server/AyaNova/models/WorkOrderItemExpense.cs | 17 +++++++++++------ server/AyaNova/models/WorkOrderItemLabor.cs | 11 ++++++++--- server/AyaNova/models/WorkOrderItemLoan.cs | 16 +++++++++++----- server/AyaNova/models/WorkOrderItemPart.cs | 15 ++++++++++----- .../models/WorkOrderItemPartRequest.cs | 7 ++++++- .../models/WorkOrderItemScheduledUser.cs | 16 +++++++++++----- server/AyaNova/models/WorkOrderItemTask.cs | 16 +++++++++++----- server/AyaNova/models/WorkOrderItemTravel.cs | 15 ++++++++++----- server/AyaNova/models/WorkOrderItemUnit.cs | 7 ++++++- server/AyaNova/models/WorkOrderTemplate.cs | 16 ++++++++++------ .../AyaNova/models/WorkOrderTemplateItem.cs | 16 ++++++++++------ 34 files changed, 294 insertions(+), 165 deletions(-) diff --git a/server/AyaNova/models/Contract.cs b/server/AyaNova/models/Contract.cs index 96408296..90508c74 100644 --- a/server/AyaNova/models/Contract.cs +++ b/server/AyaNova/models/Contract.cs @@ -1,5 +1,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AyaNova.Biz; using Newtonsoft.Json; namespace AyaNova.Models @@ -13,19 +15,22 @@ namespace AyaNova.Models public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public Contract() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.Contract; } + }//eoc }//eons diff --git a/server/AyaNova/models/Customer.cs b/server/AyaNova/models/Customer.cs index 1eb8c82a..0e36f6b3 100644 --- a/server/AyaNova/models/Customer.cs +++ b/server/AyaNova/models/Customer.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public Customer() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.Customer; } + }//eoc }//eons diff --git a/server/AyaNova/models/HeadOffice.cs b/server/AyaNova/models/HeadOffice.cs index 180b0cfb..0a9194a5 100644 --- a/server/AyaNova/models/HeadOffice.cs +++ b/server/AyaNova/models/HeadOffice.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public HeadOffice() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.HeadOffice; } + }//eoc }//eons diff --git a/server/AyaNova/models/ICoreBizObjectModel.cs b/server/AyaNova/models/ICoreBizObjectModel.cs index f0ca285e..46601559 100644 --- a/server/AyaNova/models/ICoreBizObjectModel.cs +++ b/server/AyaNova/models/ICoreBizObjectModel.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; namespace AyaNova.Models { /// @@ -12,11 +13,13 @@ namespace AyaNova.Models //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 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 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 Tags { get; set; } + [NotMapped] + public AyaNova.Biz.AyaType AyaType { get;} } diff --git a/server/AyaNova/models/LoanUnit.cs b/server/AyaNova/models/LoanUnit.cs index 92710d9b..21a9b1b9 100644 --- a/server/AyaNova/models/LoanUnit.cs +++ b/server/AyaNova/models/LoanUnit.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public LoanUnit() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.LoanUnit; } + }//eoc }//eons diff --git a/server/AyaNova/models/PM.cs b/server/AyaNova/models/PM.cs index adf554fc..16a5920d 100644 --- a/server/AyaNova/models/PM.cs +++ b/server/AyaNova/models/PM.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models @@ -32,13 +33,8 @@ namespace AyaNova.Models PMItems = new List(); } - - //Not persisted business properties - //NOTE: this could be a common class applied to everything for common biz rule stuff - //i.e. specific rights in situations based on rules, like candelete, canedit etc [NotMapped] - public bool NonDataBaseExampleColumn { get; set; }//example of how to add a property that is not persisted but is used by both ends dynamically, should come up with a naming scheme so can see them at a glance - + public AyaType AyaType { get => AyaType.PM; } }//eoc diff --git a/server/AyaNova/models/PMItem.cs b/server/AyaNova/models/PMItem.cs index 75454cdb..a02d458a 100644 --- a/server/AyaNova/models/PMItem.cs +++ b/server/AyaNova/models/PMItem.cs @@ -2,25 +2,26 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + //Principle [Required]//this required annotation should cause a cascade delete to happen automatically when wo is deleted, need to test that public long PMId { get; set; }//fk @@ -33,12 +34,8 @@ namespace AyaNova.Models Tags = new List(); } - //Not persisted business properties - //NOTE: this could be a common class applied to everything for common biz rule stuff - //i.e. specific rights in situations based on rules, like candelete, canedit etc [NotMapped] - public bool NonDataBaseExampleColumn { get; set; }//example of how to add a property that is not persisted but is used by both ends dynamically, should come up with a naming scheme so can see them at a glance - + public AyaType AyaType { get => AyaType.PMItem; } }//eoc diff --git a/server/AyaNova/models/PMTemplate.cs b/server/AyaNova/models/PMTemplate.cs index 6b8300a8..f0c733f2 100644 --- a/server/AyaNova/models/PMTemplate.cs +++ b/server/AyaNova/models/PMTemplate.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public PMTemplate() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.PMTemplate; } + }//eoc }//eons diff --git a/server/AyaNova/models/PMTemplateItem.cs b/server/AyaNova/models/PMTemplateItem.cs index 6b93cf47..bbfc4313 100644 --- a/server/AyaNova/models/PMTemplateItem.cs +++ b/server/AyaNova/models/PMTemplateItem.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public PMTemplateItem() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.PMTemplateItem; } + }//eoc }//eons diff --git a/server/AyaNova/models/Part.cs b/server/AyaNova/models/Part.cs index 29cd546e..89d07ed5 100644 --- a/server/AyaNova/models/Part.cs +++ b/server/AyaNova/models/Part.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public Part() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.Part; } + }//eoc }//eons diff --git a/server/AyaNova/models/Project.cs b/server/AyaNova/models/Project.cs index 64fbaf99..bc2ddbd5 100644 --- a/server/AyaNova/models/Project.cs +++ b/server/AyaNova/models/Project.cs @@ -1,33 +1,36 @@ -using System; using System.Collections.Generic; -using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public Project() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.Project; } + }//eoc }//eons diff --git a/server/AyaNova/models/PurchaseOrder.cs b/server/AyaNova/models/PurchaseOrder.cs index 32d43482..85146f66 100644 --- a/server/AyaNova/models/PurchaseOrder.cs +++ b/server/AyaNova/models/PurchaseOrder.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public PurchaseOrder() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.PurchaseOrder; } + }//eoc }//eons diff --git a/server/AyaNova/models/Quote.cs b/server/AyaNova/models/Quote.cs index bbd642f8..560ff629 100644 --- a/server/AyaNova/models/Quote.cs +++ b/server/AyaNova/models/Quote.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { @@ -32,12 +33,8 @@ namespace AyaNova.Models } - //Not persisted business properties - //NOTE: this could be a common class applied to everything for common biz rule stuff - //i.e. specific rights in situations based on rules, like candelete, canedit etc [NotMapped] - public bool NonDataBaseExampleColumn { get; set; }//example of how to add a property that is not persisted but is used by both ends dynamically, should come up with a naming scheme so can see them at a glance - + public AyaType AyaType { get => AyaType.Quote; } }//eoc diff --git a/server/AyaNova/models/QuoteItem.cs b/server/AyaNova/models/QuoteItem.cs index 07b0fc8b..f2e821f0 100644 --- a/server/AyaNova/models/QuoteItem.cs +++ b/server/AyaNova/models/QuoteItem.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { @@ -33,11 +34,8 @@ namespace AyaNova.Models Tags = new List(); } - //Not persisted business properties - //NOTE: this could be a common class applied to everything for common biz rule stuff - //i.e. specific rights in situations based on rules, like candelete, canedit etc - [NotMapped] - public bool NonDataBaseExampleColumn { get; set; }//example of how to add a property that is not persisted but is used by both ends dynamically, should come up with a naming scheme so can see them at a glance + [NotMapped] + public AyaType AyaType { get => AyaType.QuoteItem; } }//eoc diff --git a/server/AyaNova/models/QuoteTemplate.cs b/server/AyaNova/models/QuoteTemplate.cs index 39e32e03..52d7830a 100644 --- a/server/AyaNova/models/QuoteTemplate.cs +++ b/server/AyaNova/models/QuoteTemplate.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public QuoteTemplate() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.QuoteTemplate; } + }//eoc }//eons diff --git a/server/AyaNova/models/QuoteTemplateItem.cs b/server/AyaNova/models/QuoteTemplateItem.cs index 503c70fa..4ac368b1 100644 --- a/server/AyaNova/models/QuoteTemplateItem.cs +++ b/server/AyaNova/models/QuoteTemplateItem.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public QuoteTemplateItem() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.QuoteTemplateItem; } + }//eoc }//eons diff --git a/server/AyaNova/models/Unit.cs b/server/AyaNova/models/Unit.cs index 0c3b3ea5..dcb0fd81 100644 --- a/server/AyaNova/models/Unit.cs +++ b/server/AyaNova/models/Unit.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public Unit() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.Unit; } + }//eoc }//eons diff --git a/server/AyaNova/models/UnitModel.cs b/server/AyaNova/models/UnitModel.cs index e52afef7..1d71a1c2 100644 --- a/server/AyaNova/models/UnitModel.cs +++ b/server/AyaNova/models/UnitModel.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public UnitModel() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.UnitModel; } + }//eoc }//eons diff --git a/server/AyaNova/models/User.cs b/server/AyaNova/models/User.cs index 1fe54d3d..59d37963 100644 --- a/server/AyaNova/models/User.cs +++ b/server/AyaNova/models/User.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; namespace AyaNova.Models { @@ -11,7 +12,7 @@ namespace AyaNova.Models public dtUser() { Tags = new List(); - + } public long Id { get; set; } public uint Concurrency { get; set; } @@ -30,6 +31,9 @@ namespace AyaNova.Models public List Tags { get; set; } public DateTime? LastLogin { get; set; } + + [NotMapped] + public AyaType AyaType { get => AyaType.User; } }//eoc public class User : ICoreBizObjectModel @@ -82,7 +86,7 @@ namespace AyaNova.Models public User() { Tags = new List(); - + } public bool IsTech @@ -93,5 +97,8 @@ namespace AyaNova.Models } } + [NotMapped] + public AyaType AyaType { get => AyaType.User; } + }//eoc } \ No newline at end of file diff --git a/server/AyaNova/models/Vendor.cs b/server/AyaNova/models/Vendor.cs index c76419e6..bc38047e 100644 --- a/server/AyaNova/models/Vendor.cs +++ b/server/AyaNova/models/Vendor.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public Vendor() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.Vendor; } + }//eoc }//eons diff --git a/server/AyaNova/models/Widget.cs b/server/AyaNova/models/Widget.cs index fc4a3170..f3531ce3 100644 --- a/server/AyaNova/models/Widget.cs +++ b/server/AyaNova/models/Widget.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; namespace AyaNova.Models @@ -24,7 +25,7 @@ namespace AyaNova.Models public DateTime? EndDate { get; set; } public string Notes { get; set; } public int? Count { get; set; } - public string Wiki {get;set;} + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } //relations @@ -39,6 +40,9 @@ namespace AyaNova.Models Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.Widget; } + } } diff --git a/server/AyaNova/models/WorkOrder.cs b/server/AyaNova/models/WorkOrder.cs index ceee30a3..fe38ffb6 100644 --- a/server/AyaNova/models/WorkOrder.cs +++ b/server/AyaNova/models/WorkOrder.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { @@ -25,6 +26,9 @@ namespace AyaNova.Models public string CustomFields { get; set; } public List Tags { get; set; } + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrder; } + }//eoc public class WorkOrder : ICoreBizObjectModel @@ -61,6 +65,9 @@ namespace AyaNova.Models return this.Serial.ToString(); } } + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrder; } }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItem.cs b/server/AyaNova/models/WorkOrderItem.cs index 13f31112..e975446b 100644 --- a/server/AyaNova/models/WorkOrderItem.cs +++ b/server/AyaNova/models/WorkOrderItem.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; + namespace AyaNova.Models { @@ -21,6 +23,9 @@ namespace AyaNova.Models //Principle [Required] public long WorkOrderId { get; set; } + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItem; } }//eoc public class WorkOrderItem : ICoreBizObjectModel @@ -62,6 +67,9 @@ namespace AyaNova.Models public List Tasks { get; set; } public List Travels { get; set; } public List Units { get; set; } + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItem; } }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemExpense.cs b/server/AyaNova/models/WorkOrderItemExpense.cs index e0493d5c..ab8bcaab 100644 --- a/server/AyaNova/models/WorkOrderItemExpense.cs +++ b/server/AyaNova/models/WorkOrderItemExpense.cs @@ -1,25 +1,30 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { public class WorkOrderItemExpense : ICoreBizObjectModel { - public WorkOrderItemExpense() + public WorkOrderItemExpense() { Tags = new List(); } 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 Tags { get; set; } + public List Tags { get; set; } [Required] - public long WorkOrderItemId { get; set; } + public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - - + + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItemExpense; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemLabor.cs b/server/AyaNova/models/WorkOrderItemLabor.cs index d2651209..c30106d7 100644 --- a/server/AyaNova/models/WorkOrderItemLabor.cs +++ b/server/AyaNova/models/WorkOrderItemLabor.cs @@ -1,12 +1,14 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { public class WorkOrderItemLabor : ICoreBizObjectModel { - public WorkOrderItemLabor() + public WorkOrderItemLabor() { Tags = new List(); } @@ -16,9 +18,12 @@ namespace AyaNova.Models public string CustomFields { get; set; } public List Tags { get; set; } [Required] - public long WorkOrderItemId { get; set; } + public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItemLabor; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemLoan.cs b/server/AyaNova/models/WorkOrderItemLoan.cs index 8016a331..4e9ed525 100644 --- a/server/AyaNova/models/WorkOrderItemLoan.cs +++ b/server/AyaNova/models/WorkOrderItemLoan.cs @@ -1,24 +1,30 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; + namespace AyaNova.Models { public class WorkOrderItemLoan : ICoreBizObjectModel { - public WorkOrderItemLoan() + public WorkOrderItemLoan() { Tags = new List(); } 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 Tags { get; set; } + public List Tags { get; set; } [Required] - public long WorkOrderItemId { get; set; } + public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItemLoan; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemPart.cs b/server/AyaNova/models/WorkOrderItemPart.cs index 2ae3a612..13d03d90 100644 --- a/server/AyaNova/models/WorkOrderItemPart.cs +++ b/server/AyaNova/models/WorkOrderItemPart.cs @@ -1,24 +1,29 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { public class WorkOrderItemPart : ICoreBizObjectModel { - public WorkOrderItemPart() + public WorkOrderItemPart() { Tags = new List(); } 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 Tags { get; set; } + public List Tags { get; set; } [Required] - public long WorkOrderItemId { get; set; } + public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItemPart; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemPartRequest.cs b/server/AyaNova/models/WorkOrderItemPartRequest.cs index 5ed3b69b..62ffa7b4 100644 --- a/server/AyaNova/models/WorkOrderItemPartRequest.cs +++ b/server/AyaNova/models/WorkOrderItemPartRequest.cs @@ -1,6 +1,8 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { @@ -19,6 +21,9 @@ namespace AyaNova.Models public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItemPartRequest; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemScheduledUser.cs b/server/AyaNova/models/WorkOrderItemScheduledUser.cs index 5e620c15..79ec39f3 100644 --- a/server/AyaNova/models/WorkOrderItemScheduledUser.cs +++ b/server/AyaNova/models/WorkOrderItemScheduledUser.cs @@ -1,24 +1,30 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { public class WorkOrderItemScheduledUser : ICoreBizObjectModel { - public WorkOrderItemScheduledUser() + public WorkOrderItemScheduledUser() { Tags = new List(); } 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 Tags { get; set; } + public List Tags { get; set; } [Required] - public long WorkOrderItemId { get; set; } + public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - + + [NotMapped] + [JsonIgnore] + public AyaType AyaType { get => AyaType.WorkOrderItemScheduledUser; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemTask.cs b/server/AyaNova/models/WorkOrderItemTask.cs index 15adac70..91a56795 100644 --- a/server/AyaNova/models/WorkOrderItemTask.cs +++ b/server/AyaNova/models/WorkOrderItemTask.cs @@ -1,24 +1,30 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { public class WorkOrderItemTask : ICoreBizObjectModel { - public WorkOrderItemTask() + public WorkOrderItemTask() { Tags = new List(); } 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 Tags { get; set; } + public List Tags { get; set; } [Required] - public long WorkOrderItemId { get; set; } + public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - + + [NotMapped] + [JsonIgnore] + public AyaType AyaType { get => AyaType.WorkOrderItemTask; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemTravel.cs b/server/AyaNova/models/WorkOrderItemTravel.cs index bd6e1da1..d8705f10 100644 --- a/server/AyaNova/models/WorkOrderItemTravel.cs +++ b/server/AyaNova/models/WorkOrderItemTravel.cs @@ -1,24 +1,29 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { public class WorkOrderItemTravel : ICoreBizObjectModel { - public WorkOrderItemTravel() + public WorkOrderItemTravel() { Tags = new List(); } 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 Tags { get; set; } + public List Tags { get; set; } [Required] - public long WorkOrderItemId { get; set; } + public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItemTravel; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemUnit.cs b/server/AyaNova/models/WorkOrderItemUnit.cs index 00b27fbe..f6b3631c 100644 --- a/server/AyaNova/models/WorkOrderItemUnit.cs +++ b/server/AyaNova/models/WorkOrderItemUnit.cs @@ -1,6 +1,8 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; +using AyaNova.Biz; namespace AyaNova.Models { @@ -19,6 +21,9 @@ namespace AyaNova.Models public long WorkOrderItemId { get; set; } [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } - + + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderItemUnit; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderTemplate.cs b/server/AyaNova/models/WorkOrderTemplate.cs index 30333273..9c00972c 100644 --- a/server/AyaNova/models/WorkOrderTemplate.cs +++ b/server/AyaNova/models/WorkOrderTemplate.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public WorkOrderTemplate() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderTemplate; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderTemplateItem.cs b/server/AyaNova/models/WorkOrderTemplateItem.cs index 7dd22ccf..d42bd1dc 100644 --- a/server/AyaNova/models/WorkOrderTemplateItem.cs +++ b/server/AyaNova/models/WorkOrderTemplateItem.cs @@ -2,32 +2,36 @@ using System; using System.Collections.Generic; using AyaNova.Biz; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; 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 : ICoreBizObjectModel { public long Id { get; set; } public uint Concurrency { get; set; } [Required] - public string Name { get; set; } - public bool Active { get; set; } - public string Notes { get; set; } - public string Wiki {get;set;} + public string Name { get; set; } + public bool Active { get; set; } + public string Notes { get; set; } + public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public WorkOrderTemplateItem() { Tags = new List(); } + [NotMapped] + public AyaType AyaType { get => AyaType.WorkOrderTemplateItem; } + }//eoc }//eons