BusinessMgr

This commit is contained in:
Andy Howard
2025-01-27 10:01:50 +00:00
parent 82a9d3497a
commit f840c9c858
34 changed files with 222 additions and 197 deletions
+14 -13
View File
@@ -3,6 +3,7 @@ using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Sarand.Net.Standard.Base.CodeTypes
{
@@ -56,7 +57,7 @@ namespace Sarand.Net.Standard.Base.CodeTypes
// Data members.
private readonly DataProperties data = new DataProperties();
// Construction.
public Data ()
public Data()
{
Status = DefaultStatus;
}
@@ -87,7 +88,7 @@ namespace Sarand.Net.Standard.Base.CodeTypes
set { CheckChanged(data.DataValue, value); data.DataValue = value; }
}
// Population.
internal void PopulateFrom (Data data)
internal void PopulateFrom(Data data)
{
CodeTypeId = data.CodeTypeId;
Code = data.Code;
@@ -96,7 +97,7 @@ namespace Sarand.Net.Standard.Base.CodeTypes
DataValue = data.DataValue;
base.PopulateFrom(data);
}
public Data Clone ()
public Data Clone()
{
Data data = new Data();
data.PopulateFrom(this);
@@ -123,7 +124,7 @@ namespace Sarand.Net.Standard.Base.CodeTypes
//-------------------------------------------------------------------
// Construction.
public SaCode (SysId id, SysId codeTypeId, string code) :
public SaCode(SysId id, SysId codeTypeId, string code) :
base(id)
{
base.SetData(data);
@@ -143,7 +144,7 @@ namespace Sarand.Net.Standard.Base.CodeTypes
public static SaStatus ActiveStatus { get { return SaStatus.Current; } }
public static SaStatus InactiveStatus { get { return SaStatus.Redundant; } }
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(validStatuses); } }
public static DataValue.TriStateType GetStatusTriState (SaStatus status)
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
{
switch (status)
{
@@ -159,8 +160,8 @@ namespace Sarand.Net.Standard.Base.CodeTypes
//-------------------------------------------------------------------
// Properties.
public Data GetData () { return data.Clone(); }
public void SetData (Data data)
public Data GetData() { return data.Clone(); }
public void SetData(Data data)
{
// Properties that cannot be changed if previously specified.
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
@@ -218,7 +219,7 @@ namespace Sarand.Net.Standard.Base.CodeTypes
public HashSet<SysId> CodeTypeIds { get; } = new HashSet<SysId>();
public HashSet<String> CodeTypeCodes { get; } = new HashSet<string>();
/// <summary>Generic search - code, description etc.</summary>
public string Search{ get; set; }
public string Search { get; set; }
public string Code { get; set; }
public string CodePartial { get; set; }
public string Desc { get; set; }
@@ -233,24 +234,24 @@ namespace Sarand.Net.Standard.Base.CodeTypes
public static class SaCodeList
{
// Contents.
public static bool ContainsCode (this List<SaCode> codes, String code, bool currentOnly = true)
public static bool ContainsCode(this List<SaCode> codes, String code, bool currentOnly = true)
{
if (StringUtil.IsEmpty(code)) return false;
return codes.Exists(item => item.Code.EqualsCI(code) && (!currentOnly || item.IsStatusCurrent));
return codes.Any(item => item.Code.EqualsCI(code) && (!currentOnly || item.IsStatusCurrent));
}
// Retrieve code.
public static SaCode GetCodeById (this List<SaCode> codes, SysId id)
public static SaCode GetCodeById(this List<SaCode> codes, SysId id)
{
return codes.Find(item => item.Id.Equals(id));
}
public static SaCode GetCodeByCode (this List<SaCode> codes, string code)
public static SaCode GetCodeByCode(this List<SaCode> codes, string code)
{
return codes.Find(item => item.Code.EqualsCI(code));
}
// Retrieve code's description.
public static string GetDescForCode (this List<SaCode> codes, string code, String defaultDesc = "")
public static string GetDescForCode(this List<SaCode> codes, string code, String defaultDesc = "")
{
SaCode saCode = codes.Find(item => item.Code.EqualsCI(code));
if (saCode != null)
@@ -225,11 +225,11 @@ namespace Sarand.Net.Standard.Base.Interfaces
/// </summary>
public new class Params : SacsHierarchyItem.Params
{
public List<SysId> IncludedIds { get; } = new List<SysId>();
public List<SysId> ExcludedIds { get; } = new List<SysId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
public String Context { get; set; }
public SaInterfaceCategory InterfaceCategory { get; set; } = SaInterfaceCategory.Unknown;
public List<short> IncludedInterfaceTypes { get; } = new List<short>();
public HashSet<short> InterfaceTypesIncluded { get; } = new HashSet<short>();
/// <summary>Exact code match</summary>
public String Code { get; set; }
public String CaptionPartial { get; set; }
@@ -349,12 +349,12 @@ namespace Sarand.Net.Standard.Base.Interfaces
/// </summary>
public new class Params : SacsHierarchyItem.Params
{
public List<SysId> IncludedIds { get; } = new List<SysId>();
public List<SysId> ExcludedIds { get; } = new List<SysId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
public SysId InterfaceId { get; set; }
public SaInterfaceProcessDirection Direction { get; set; } = SaInterfaceProcessDirection.Unknown;
public short ItemType { get; set; }
public List<ItemId> IncludedItemIds { get; } = new List<ItemId>();
public HashSet<ItemId> ItemIdsIncluded { get; } = new HashSet<ItemId>();
public String ExternalReference { get; set; }
public ProcessStatusCat ProcessStatusCat { get; set; } = ProcessStatusCat.Any;
public ItemStatusCat ItemStatusCat { get; set; } = ItemStatusCat.Any;
@@ -72,7 +72,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
// Data members.
private readonly DataProperties data = new DataProperties();
// Construction.
public Data ()
public Data()
{
Status = DefaultStatus;
}
@@ -113,7 +113,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
set { CheckChanged(data.ElapseSecs, value); data.ElapseSecs = value; }
}
// Population.
internal void PopulateFrom (Data data)
internal void PopulateFrom(Data data)
{
InterfaceId = data.InterfaceId;
Direction = data.Direction;
@@ -124,7 +124,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
ElapseSecs = data.ElapseSecs;
base.PopulateFrom(data);
}
public Data Clone ()
public Data Clone()
{
Data data = new Data();
data.PopulateFrom(this);
@@ -154,7 +154,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
//-------------------------------------------------------------------
// Construction.
public SaInterfaceProcess (SysId id, SysId interfaceId, SaInterfaceProcessDirection direction, String reference, int sequence) :
public SaInterfaceProcess(SysId id, SysId interfaceId, SaInterfaceProcessDirection direction, String reference, int sequence) :
base(id)
{
base.SetData(data);
@@ -180,7 +180,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
public static SaStatus CompletedStatus { get { return SaStatus.Completed; } }
public static SaStatus CancelledStatus { get { return SaStatus.Cancelled; } }
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(validStatuses); } }
public static DataValue.TriStateType GetStatusTriState (SaStatus status)
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
{
switch (status)
{
@@ -200,8 +200,8 @@ namespace Sarand.Net.Standard.Base.Interfaces
//-------------------------------------------------------------------
// Properties.
public Data GetData () { return data.Clone(); }
public void SetData (Data data)
public Data GetData() { return data.Clone(); }
public void SetData(Data data)
{
// Properties that cannot be changed if previously specified.
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
@@ -270,18 +270,18 @@ namespace Sarand.Net.Standard.Base.Interfaces
/// </summary>
public new class Params : SacsHierarchyItem.Params
{
public List<SysId> IncludedIds { get; } = new List<SysId>();
public List<SysId> ExcludedIds { get; } = new List<SysId>();
public SysId InterfaceId { get; set; }
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
public SysId InterfaceId { get; set; }
public SaInterfaceProcessDirection Direction { get; set; } = SaInterfaceProcessDirection.Unknown;
public String Reference { get; set; }
public String ReferencePartial { get; set; }
public DateTime ProcessedOn { get; set; } = DateTime.MinValue;
public DateTime ProcessedFrom { get; set; } = DateTime.MinValue;
public DateTime ProcessedTo { get; set; } = DateTime.MinValue;
public String MessageText { get; set; }
public String MessageTextPartial { get; set; }
public StatusCat StatusCat { get; set; } = StatusCat.Any;
public String Reference { get; set; }
public String ReferencePartial { get; set; }
public DateTime ProcessedOn { get; set; } = DateTime.MinValue;
public DateTime ProcessedFrom { get; set; } = DateTime.MinValue;
public DateTime ProcessedTo { get; set; } = DateTime.MinValue;
public String MessageText { get; set; }
public String MessageTextPartial { get; set; }
public StatusCat StatusCat { get; set; } = StatusCat.Any;
}
//-------------------------------------------------------------------
@@ -181,10 +181,10 @@ namespace Sarand.Net.Standard.Base.Interfaces
/// </summary>
public new class Params : SacsHierarchyItem.Params
{
public List<SysId> IncludedIds { get; } = new List<SysId>();
public List<SysId> ExcludedIds { get; } = new List<SysId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
public SysId InterfaceProcessId { get; } = null;
public List<ItemId> IncludedItemIds { get; } = new List<ItemId>();
public HashSet<ItemId> ItemIdsIncluded { get; } = new HashSet<ItemId>();
public StatusCat StatusCat { get; set; } = StatusCat.Any;
}
@@ -55,7 +55,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
// Data members.
private readonly DataProperties data = new DataProperties();
// Construction.
public Data ()
public Data()
{
Status = DefaultStatus;
}
@@ -91,7 +91,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
set { if (value == null) value = new ItemId(); CheckChanged(data.ItemId, value); data.ItemId = value; }
}
// Population.
internal void PopulateFrom (Data data)
internal void PopulateFrom(Data data)
{
InterfaceProcessId = data.InterfaceProcessId;
Level = data.Level;
@@ -101,7 +101,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
ItemId = data.ItemId;
base.PopulateFrom(data);
}
public Data Clone ()
public Data Clone()
{
Data data = new Data();
data.PopulateFrom(this);
@@ -130,7 +130,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
//-------------------------------------------------------------------
// Construction.
public SaInterfaceProcessMessage (SysId id, SysId interfaceProcessId) :
public SaInterfaceProcessMessage(SysId id, SysId interfaceProcessId) :
base(id)
{
base.SetData(data);
@@ -147,7 +147,7 @@ namespace Sarand.Net.Standard.Base.Interfaces
public static SaStatus DefaultStatus { get { return CompletedStatus; } }
public static SaStatus CompletedStatus { get { return SaStatus.Completed; } }
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(validStatuses); } }
public static DataValue.TriStateType GetStatusTriState (SaStatus status)
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
{
switch (status)
{
@@ -161,8 +161,8 @@ namespace Sarand.Net.Standard.Base.Interfaces
//-------------------------------------------------------------------
// Properties.
public Data GetData () { return data.Clone(); }
public void SetData (Data data)
public Data GetData() { return data.Clone(); }
public void SetData(Data data)
{
// Properties that cannot be changed if previously specified.
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
@@ -218,10 +218,10 @@ namespace Sarand.Net.Standard.Base.Interfaces
/// </summary>
public new class Params : SacsHierarchyItem.Params
{
public List<SysId> IncludedIds { get; } = new List<SysId>();
public List<SysId> ExcludedIds { get; } = new List<SysId>();
public SysId InterfaceProcessId { get; set; } = new SysId();
public List<ItemId> IncludedItemIds { get; } = new List<ItemId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
public SysId InterfaceProcessId { get; set; } = new SysId();
public HashSet<ItemId> ItemIdsIncluded { get; } = new HashSet<ItemId>();
public StatusCat StatusCat { get; set; } = StatusCat.Any;
}
+4 -4
View File
@@ -193,10 +193,10 @@ namespace Sarand.Net.Standard.Base.ItemData
/// </summary>
public new class Params : SacsHierarchyItem.Params
{
public List<SysId> IncludedIds { get; } = new List<SysId>();
public List<SysId> ExcludedIds { get; } = new List<SysId>();
public List<ItemId> IncludedItemIds { get; } = new List<ItemId>();
public List<String> IncludedDataTypes { get; } = new List<String>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
public HashSet<ItemId> ItemIdsIncluded { get; } = new HashSet<ItemId>();
public HashSet<String> DataTypesIncluded { get; } = new HashSet<String>();
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
}
+3 -3
View File
@@ -277,9 +277,9 @@ namespace Sarand.Net.Standard.Base.ItemDocs
/// </summary>
public new class Params : SacsHierarchyItem.Params
{
public List<SysId> IncludedIds { get; } = new List<SysId>();
public List<SysId> ExcludedIds { get; } = new List<SysId>();
public List<ItemId> IncludedItemIds { get; } = new List<ItemId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
public HashSet<ItemId> ItemIdsIncluded { get; } = new HashSet<ItemId>();
public SaItemDocConsole.Category Category { get; set; }
public String DocType { get; set; }
public String DescBriefPartial { get; set; }
@@ -1,15 +1,11 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging.Abstractions;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Tasks;
using Sarand.Net.Standard.Base.Utils;
using static Sarand.Net.Standard.Base.Procs.SaProcess_Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Sarand.Net.Standard.Base.Procs
{
@@ -263,8 +263,8 @@ namespace Sarand.Net.Standard.Base.ReferenceData
public new class Params : SacsHierarchyItem.Params
{
// List filtering.
public List<SysId> IdsIncluded { get; } = new List<SysId>();
public List<SysId> IdsExcluded { get; } = new List<SysId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
// Currency.
public String Code { get; set; }
public String CodePartial { get; set; }
@@ -185,8 +185,8 @@ namespace Sarand.Net.Standard.Base.ReferenceData
public new class Params : SacsHierarchyItem.Params
{
// List filtering.
public List<SysId> IdsIncluded { get; } = new List<SysId>();
public List<SysId> IdsExcluded { get; } = new List<SysId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
// Item properties.
public String Code { get; set; }
public String CodePartial { get; set; }
@@ -7,12 +7,11 @@ using System.Text;
namespace Sarand.Net.Standard.Base.ReferenceData
{
//=======================================================================
// Reference Data Console - Currencies.
//=======================================================================
partial class SaReferenceDataConsole
{
//*******************************************************************
// C u r r e n c i e s
//*******************************************************************
// Properties.
public abstract short CurrencyItemType { get; }
public abstract String TableName_Currency { get; }
@@ -7,12 +7,11 @@ using System.Text;
namespace Sarand.Net.Standard.Base.ReferenceData
{
//=======================================================================
// Reference Data Console - Languages.
//=======================================================================
partial class SaReferenceDataConsole
{
//*******************************************************************
// L a n g u a g e s
//*******************************************************************
// Properties.
public abstract short LanguageItemType { get; }
public abstract String TableName_Language { get; }
@@ -7,20 +7,29 @@ using System.Text;
namespace Sarand.Net.Standard.Base.ReferenceData
{
//=======================================================================
// Reference Data Console - Regions.
//=======================================================================
partial class SaReferenceDataConsole
{
//*******************************************************************
// R e g i o n s
//*******************************************************************
// Definitions.
public class RegionInitData
{
public SaRegionType Type { get; set; } = SaRegionType.Unknown;
public String Name { get; set; } = "";
public String CurrencyCode { get; set; } = "";
public SaRegionType ParentType { get; set; } = SaRegionType.Unknown;
public String ParentName { get; set; } = "";
}
// Utilities.
/// <summary>Return the valid parent type for the specified Region type.</summary>
public static SaRegionType ParentTypeFor (SaRegionType regionType)
public static SaRegionType ParentTypeFor(SaRegionType regionType)
{
return SaReferenceDataMgr.ParentTypeFor(regionType);
}
/// <summary>Return the valid subordinate Region type for the specified Region type.</summary>
public static SaRegionType SubordinateTypeFor (SaRegionType regionType)
public static SaRegionType SubordinateTypeFor(SaRegionType regionType)
{
return SaReferenceDataMgr.SubordinateTypeFor(regionType);
}
@@ -31,15 +40,15 @@ namespace Sarand.Net.Standard.Base.ReferenceData
public abstract bool DatabaseIsValid_Region { get; }
// Retrieve Region.
public abstract SaRegion GetRegion (SaRegion.Params prmRegion);
public abstract SaRegion GetRegion(SaRegion.Params prmRegion);
// Region list.
public abstract ColumnDfn GetRegionColumnDfn (SaRegion.Column columnId, String caption = "", int width = 0);
public abstract List<String> GetRegionQueryFilter (SaRegion.Params prm);
public abstract long GetRegionCount (SaRegion.Params prmRegion);
public abstract List<SaRegion> GetRegionList (SaRegion.Params prmRegion);
public abstract DbResultSet ExecuteRegionQuery (List<ColumnDfn> columns, SaRegion.Params prm);
public abstract DataValue GetRegionDataValue (ColumnDfn column, NamedValue.Map values);
public abstract ColumnDfn GetRegionColumnDfn(SaRegion.Column columnId, String caption = "", int width = 0);
public abstract List<String> GetRegionQueryFilter(SaRegion.Params prm);
public abstract long GetRegionCount(SaRegion.Params prmRegion);
public abstract List<SaRegion> GetRegionList(SaRegion.Params prmRegion);
public abstract DbResultSet ExecuteRegionQuery(List<ColumnDfn> columns, SaRegion.Params prm);
public abstract DataValue GetRegionDataValue(ColumnDfn column, NamedValue.Map values);
//-------------------------------------------------------------------
}
@@ -7,12 +7,11 @@ using System.Text;
namespace Sarand.Net.Standard.Base.ReferenceData
{
//=======================================================================
// Reference Data Console - Tax codes.
//=======================================================================
partial class SaReferenceDataConsole
{
//*******************************************************************
// T a x C o d e s
//*******************************************************************
// Utilities.
public static String GetTaxCode (SaTaxCodeType taxCode)
{
@@ -7,12 +7,11 @@ using System.Text;
namespace Sarand.Net.Standard.Base.ReferenceData
{
//=======================================================================
// Reference Data Console - Units of Measure.
//=======================================================================
partial class SaReferenceDataConsole
{
//*******************************************************************
// U n i t s o f M e a s u r e
//*******************************************************************
// Properties.
public abstract short UnitMeasureItemType { get; }
public abstract String TableName_UnitMeasure { get; }
@@ -178,8 +178,8 @@ namespace Sarand.Net.Standard.Base.ReferenceData
public new class Params : SacsHierarchyItem.Params
{
// List filtering.
public List<SysId> IdsIncluded { get; } = new List<SysId>();
public List<SysId> IdsExcluded { get; } = new List<SysId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
// Region.
public SaRegionType RegionType { get; set; } = SaRegionType.Unknown;
public String Name { get; set; }
@@ -279,8 +279,8 @@ namespace Sarand.Net.Standard.Base.ReferenceData
public new class Params : SacsHierarchyItem.Params
{
// List filtering.
public List<SysId> IdsIncluded { get; } = new List<SysId>();
public List<SysId> IdsExcluded { get; } = new List<SysId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
// Tax Code properties.
public String Code { get; set; }
public String CodePartial { get; set; }
@@ -319,8 +319,8 @@ namespace Sarand.Net.Standard.Base.ReferenceData
public new class Params : SacsHierarchyItem.Params
{
// List filtering.
public List<SysId> IdsIncluded { get; } = new List<SysId>();
public List<SysId> IdsExcluded { get; } = new List<SysId>();
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
// UnitMeasure.
public SaUomCategory Category { get; set; }
public SaUomType UnitType { get; set; }
@@ -1,10 +1,9 @@
using System;
using System.Collections.Generic;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.UpdateLog;
using static Sarand.Net.Standard.Base.Security.SaSecurityMgr;
using System;
using System.Collections.Generic;
namespace Sarand.Net.Standard.Base.Security
{
@@ -224,11 +224,11 @@ namespace Sarand.Net.Standard.Base.Security
/// </summary>
public new class Params : SacsHierarchyItem.Params
{
public readonly List<SysId> includedItemIdsOwner = new List<SysId>();
public readonly HashSet<SysId> ItemIdsOwnerIncluded = new HashSet<SysId>();
public SaSecurity.ItemType OwnerItemType { get; set; } = SaSecurity.ItemType.Unknown;
public readonly List<SysId> includedItemIdsTarget = new List<SysId>();
public readonly HashSet<SysId> ItemIdsTargetIncluded = new HashSet<SysId>();
public SaSecurity.ItemType TargetItemType { get; set; } = SaSecurity.ItemType.Unknown;
public readonly List<SysId> includedItemIdsContext = new List<SysId>();
public readonly HashSet<SysId> ItemIdsContextIncluded = new HashSet<SysId>();
public StatusCat StatusCat { get; set; } = StatusCat.Any;
}