From 2559b9dae3c62888a43d4181ea2868874028f871 Mon Sep 17 00:00:00 2001 From: Andy Howard Date: Mon, 5 May 2025 16:00:50 +0100 Subject: [PATCH] BusinessMgr 3.0.1.6 --- .../Online/SaQuickBooksApiConsole_Online.cs | 5 + .../Base/CodeTypes/SaCodeTypeConsole.cs | 4 +- SacsStandardBase/Base/Dbas/DbQuery.cs | 114 +++++++++--------- SacsStandardBase/SacsStandardBase.csproj | 8 +- .../Dbas/CodeTypes/SaCodeTypeConsole_Dbas.cs | 4 +- .../Dbas/CodeTypes/SaCodeTypeMgr_Dbas.cs | 4 +- .../SaInterfaceMgr_Dbas-InterfaceDataItems.cs | 2 +- ...erfaceMgr_Dbas-InterfaceProcessMessages.cs | 2 +- .../SaInterfaceMgr_Dbas-InterfaceProcesses.cs | 2 +- .../SaInterfaceMgr_Dbas-Interfaces.cs | 2 +- .../Dbas/ItemData/SaItemDataMgr_Dbas.cs | 2 +- .../Dbas/ItemDocs/SaItemDocMgr_Dbas.cs | 2 +- .../Dbas/ItemOptions/SaItemOptionMgr_Dbas.cs | 2 +- .../SbmReferenceDataMgr_Dbas-Currency.cs | 2 +- .../SbmReferenceDataMgr_Dbas-Language.cs | 2 +- .../SbmReferenceDataMgr_Dbas-Region.cs | 2 +- .../SbmReferenceDataMgr_Dbas-TaxCode.cs | 2 +- .../SbmReferenceDataMgr_Dbas-UnitMeasure.cs | 2 +- .../SaSecurityMgr_Dbas-SecurityItem.cs | 2 +- .../SaSecurityMgr_Dbas-SecurityLink.cs | 2 +- .../Dbas/UpdateLog/SaUpdateLogMgr_Dbas.cs | 2 +- SacsStandardProc/SacsStandardProc.csproj | 4 +- 22 files changed, 92 insertions(+), 81 deletions(-) diff --git a/SacsStandardAccounts/Accounts/QuickBooks/Online/SaQuickBooksApiConsole_Online.cs b/SacsStandardAccounts/Accounts/QuickBooks/Online/SaQuickBooksApiConsole_Online.cs index 80b88f4..c6a7b93 100644 --- a/SacsStandardAccounts/Accounts/QuickBooks/Online/SaQuickBooksApiConsole_Online.cs +++ b/SacsStandardAccounts/Accounts/QuickBooks/Online/SaQuickBooksApiConsole_Online.cs @@ -13,6 +13,9 @@ namespace Sarand.Net.Standard.Accounts.QuickBooks.Online //------------------------------------------------------------------- // D e f i n i t i o n s //------------------------------------------------------------------- + +#pragma warning disable 0414 + // Keys. // Sarand Sandbox company: // CompanyId 193514292338962 @@ -75,6 +78,8 @@ namespace Sarand.Net.Standard.Accounts.QuickBooks.Online private static String kpcACCEPTENCODING = "Accept-Encoding"; // The Compression format of the response data. private static String kpcUSERAGENT = "V3PHPSDK2.4.1"; // The Request source header value. +#pragma warning restore 0414 + //------------------------------------------------------------------- // Data members. diff --git a/SacsStandardBase/Base/CodeTypes/SaCodeTypeConsole.cs b/SacsStandardBase/Base/CodeTypes/SaCodeTypeConsole.cs index 2f3740f..2c7f7e1 100644 --- a/SacsStandardBase/Base/CodeTypes/SaCodeTypeConsole.cs +++ b/SacsStandardBase/Base/CodeTypes/SaCodeTypeConsole.cs @@ -164,8 +164,8 @@ namespace Sarand.Net.Standard.Base.CodeTypes public abstract int GetCodeCount(SaCode.Params prmCode); public abstract SaCode GetCode(SaCode.Params prmCode); /// Get filtered code type codes, indexed by Code Type code. - public abstract Dictionary> GetCodesByCodeType(SaCode.Params prmCode); - public abstract Task>> GetCodesByCodeTypeAsync(SaCode.Params prmCode); + public abstract Dictionary> GetCodes(SaCode.Params prmCode); + public abstract Task>> GetCodesAsync(SaCode.Params prmCode); /// Get filtered codes and descriptions, indexed by Code Type code. public abstract Dictionary> GetCodeDescsByCodeType(SaCode.Params prmCode); // Code updates. diff --git a/SacsStandardBase/Base/Dbas/DbQuery.cs b/SacsStandardBase/Base/Dbas/DbQuery.cs index c29d8bf..523f38a 100644 --- a/SacsStandardBase/Base/Dbas/DbQuery.cs +++ b/SacsStandardBase/Base/Dbas/DbQuery.cs @@ -15,6 +15,7 @@ namespace Sarand.Net.Standard.Base.Dbas LeftOuter, RightOuter, FullOuter, + OuterApply, Cross, } public enum DbOrderByNullMode @@ -87,6 +88,7 @@ namespace Sarand.Net.Standard.Base.Dbas case DbJoinType.LeftOuter: return (DbGlobalDbms.Type == DbmsType.Sage ? "LEFT JOIN" : "LEFT OUTER JOIN"); case DbJoinType.RightOuter: return (DbGlobalDbms.Type == DbmsType.Sage ? "RIGHT JOIN" : "RIGHT OUTER JOIN"); case DbJoinType.FullOuter: return (DbGlobalDbms.Type == DbmsType.Sage ? "FULL JOIN" : "FULL OUTER JOIN"); + case DbJoinType.OuterApply: return ("OUTER APPLY"); case DbJoinType.Cross: return "CROSS JOIN"; case DbJoinType.Inner: default: return "INNER JOIN"; @@ -134,10 +136,11 @@ namespace Sarand.Net.Standard.Base.Dbas foreach (var subJoin in SubJoins) { // Add another bracket in front of the table: - joinTable = "(" + joinTable; + joinTable = $"({joinTable}"; // Add the sub join. - subJoinData += subJoin.BuildJoin("") + ")"; + subJoinData += $"{subJoin.BuildJoin("")})"; } + //--------------------------------------------------------------- // Build this join's list of filter conditions. // Take care not to add too many embedded brackets - confuses Access etc. // [Original version: lFilter.Concat (" AND ", "(", ")", true, true)]. @@ -149,36 +152,39 @@ namespace Sarand.Net.Standard.Base.Dbas if (filterClause.IsEmpty()) continue; // Embed the clause in brackets if it contains at least one 'OR' operator. if (filterClause.IndexOf(" OR ", StringComparison.OrdinalIgnoreCase) >= 0) - filterClause = "(" + filterClause + ")"; + filterClause = $"({filterClause})"; filter += (!filter.IsEmpty() ? " AND " : "") + filterClause; } // Surround the entire filter in brackets (if not already done). - if (filter.FindMatchingBrace(0) != filter.Length) - filter = "(" + filter + ")"; + if (!StringUtil.IsBlank(filter) && filter.FindMatchingBrace(0) != filter.Length) + filter = $"({filter})"; + //--------------------------------------------------------------- // Build the join. if (enclosedJoin.IsEmpty() && subJoinData.IsEmpty()) { - //----------------------------------------------------------- // Simple join syntax. // ON - joinData = joinType + " " + joinTable + " ON " + filter; - //----------------------------------------------------------- + joinData = $"{joinType} {joinTable}"; } else { - //----------------------------------------------------------- // More complex join syntax - nested joins. // ( ) ON - //----------------------------------------------------------- // Bracket the table, enclosing any enclosed or subordinate joins. - joinData = joinType + " (" + joinTable; + joinData = $"{joinType} ({joinTable}"; if (!subJoinData.IsEmpty()) - joinData += " " + subJoinData; + joinData += $" {subJoinData}"; if (!enclosedJoin.IsEmpty()) - joinData += " " + enclosedJoin; - joinData += ") ON " + filter; - //----------------------------------------------------------- + joinData += $" {enclosedJoin}"; + joinData += ")"; } + //--------------------------------------------------------------- + // Add the join filter. + if (Type != DbJoinType.OuterApply) + joinData += $" ON {filter}"; + else if (!StringUtil.IsBlank(filter)) + SaLogger.Warn($"{SysUtil.Fn} Filter found on 'Outer Apply' join: '{filter}'."); + //--------------------------------------------------------------- return joinData; } @@ -187,13 +193,13 @@ namespace Sarand.Net.Standard.Base.Dbas public void Dump() { SaLogger.Debug($"{SysUtil.Fn}"); - SaLogger.Debug("\tType = " + GetJoinType(Type)); - SaLogger.Debug("\tTable = " + Table.Concat(" AS ")); - SaLogger.Debug("\tFilters = " + Filters.Concat("", "\t\t", "\n")); + SaLogger.Debug($"\tType = {GetJoinType(Type)}"); + SaLogger.Debug($"\tTable = {Table.Concat(" AS ")}"); + SaLogger.Debug($"\tFilters = {Filters.Concat("", "\t\t", "\n")}"); if (SubJoins.Count > 0) { } - SaLogger.Debug("\tJoin = " + BuildJoin("")); + SaLogger.Debug($"\tJoin = {BuildJoin("")}"); } //------------------------------------------------------------------- @@ -229,8 +235,8 @@ namespace Sarand.Net.Standard.Base.Dbas foreach (var join in joins) { // Add the next join in the list. - if (++joinCount > 1 && !joinData.IsEmpty()) joinData = "(" + joinData + ")"; - joinData = joinData + " " + join.BuildJoin(""); + if (++joinCount > 1 && !joinData.IsEmpty()) joinData = $"({joinData})"; + joinData = $"{joinData} {join.BuildJoin("")}"; joinData.Trim(); } } @@ -247,7 +253,7 @@ namespace Sarand.Net.Standard.Base.Dbas joinData = join.BuildJoin(joinData); joinData.Trim(); } - joinData = primaryTable + " " + joinData; + joinData = $"{primaryTable} {joinData}"; } } return joinData; @@ -342,14 +348,14 @@ namespace Sarand.Net.Standard.Base.Dbas if (!rawValue.IsEmpty() || !ignoreBlanks) { if (stringData) - value = "'" + FormatForCondition(value) + "'"; + value = $"'{FormatForCondition(value)}'"; else value.Trim(); // Non string data can be cleansed. values.Add(value); } } values.RemoveDuplicatesCI(); if (values.Count > 0) - result = "(" + values.Concat(",") + ")"; + result = $"({values.Concat(",")})"; return result; } @@ -412,7 +418,7 @@ namespace Sarand.Net.Standard.Base.Dbas { // Surround the expression in brackets if not present. if (expression.Left(1) != "(") - expression = "(" + expression + ")"; + expression = $"({expression})"; // Logic to include or exclude null values. if (excludeNulls) { @@ -443,7 +449,7 @@ namespace Sarand.Net.Standard.Base.Dbas { // Surround the expression in brackets if not present. if (expression.Left(1) != "(") - expression = "(" + expression + ")"; + expression = $"({expression})"; // Logic to promote null values to start of sequence or demote null values to the end of the sequence. String nullsClause = String.Empty; if (nullMode == DbOrderByNullMode.PromoteNulls || nullMode == DbOrderByNullMode.DatePromoteNulls) @@ -452,15 +458,15 @@ namespace Sarand.Net.Standard.Base.Dbas { // Treat NULLs before other values. List nullsFilters = new List(); - nullsFilters.Add(expression + " IS NULL"); + nullsFilters.Add($"{expression} IS NULL"); if (treatZeroAsNull) - nullsFilters.Add(expression + "=0"); + nullsFilters.Add($"{expression}=0"); if (nullMode == DbOrderByNullMode.DatePromoteNulls) - nullsFilters.Add(expression + "<=" + FormatDateForCondition(NullDate)); - nullsClause = "(CASE WHEN " + nullsFilters.Concat(" OR ", "(", ")") + " THEN 0 ELSE 1 END)"; + nullsFilters.Add($"{expression}<={FormatDateForCondition(NullDate)}"); + nullsClause = $"(CASE WHEN {nullsFilters.Concat(" OR ", "(", ")")} THEN 0 ELSE 1 END)"; } else - nullsClause = expression + " IS NULL"; + nullsClause = $"{expression} IS NULL"; } else if (nullMode == DbOrderByNullMode.DemoteNulls || nullMode == DbOrderByNullMode.DateDemoteNulls) { @@ -472,15 +478,15 @@ namespace Sarand.Net.Standard.Base.Dbas if (treatZeroAsNull) nullsFilters.Add(expression + "=0"); if (nullMode == DbOrderByNullMode.DateDemoteNulls) - nullsFilters.Add(expression + "<=" + FormatDateForCondition(NullDate)); - nullsClause = "(CASE WHEN " + nullsFilters.Concat(" OR ", "(", ")") + " THEN 1 ELSE 0 END)"; + nullsFilters.Add($"{expression}<={FormatDateForCondition(NullDate)}"); + nullsClause = $"(CASE WHEN {nullsFilters.Concat(" OR ", "(", ")")} THEN 1 ELSE 0 END)"; } else - nullsClause = expression + " IS NOT NULL"; + nullsClause = $"{expression} IS NOT NULL"; } if (!nullsClause.IsEmpty()) orderBy.Add(nullsClause); // Main clause for this expression. - orderBy.Add(expression + " " + (ascending ? "ASC" : "DESC")); + orderBy.Add($"{expression} {(ascending ? "ASC" : "DESC")}"); } return orderBy; } @@ -617,7 +623,7 @@ namespace Sarand.Net.Standard.Base.Dbas } if (interval.IsEmpty()) return "''"; } - return "DateDiff(" + interval + "," + column1 + "," + column2 + ")"; + return $"DateDiff({interval},{column1},{column2})"; } //------------------------------------------------------------------- @@ -643,7 +649,7 @@ namespace Sarand.Net.Standard.Base.Dbas #if DEBUG else { - SaLogger.Debug("BuildBitMappedFilter - Invalid bit (" + bit + ")."); + SaLogger.Debug($"BuildBitMappedFilter - Invalid bit ({bit})."); } #endif } @@ -662,7 +668,7 @@ namespace Sarand.Net.Standard.Base.Dbas if (!clause.IsEmpty()) { if (DbGlobalDbms.Type == DbmsType.MsSql) - clause = "(" + clause + " <> 0)"; + clause = $"({clause} <> 0)"; } return clause; } @@ -708,23 +714,23 @@ namespace Sarand.Net.Standard.Base.Dbas //--------------------------------------------------------------------- // Start with the column names. - String query = "SELECT "; - if (DistinctRows) query += "DISTINCT "; - if (RowLimit > 0) query += "TOP " + RowLimit.ToString() + " "; - if (Columns.Count < 1) query += "* "; - else query += Columns.Concat(" AS ", false).Concat(","); + String query = "SELECT"; + if (DistinctRows) query += " DISTINCT"; + if (RowLimit > 0) query += $" TOP {RowLimit.ToString()}"; + if (Columns.Count < 1) query += " *"; + else query += $" {Columns.Concat(" AS ", false).Concat(",")}"; //--------------------------------------------------------------------- // Add the tables and joins. String tableAliasOperator = DbGlobalDbms.Type == DbmsType.Sage ? " " : " AS "; if (Tables.Count > 1 || Joins.Count < 1) { - query += " FROM " + Tables.Concat(tableAliasOperator, false).Concat(",") + " " + Joins.BuildJoins(""); + query += $" FROM {Tables.Concat(tableAliasOperator, false).Concat(",")} {Joins.BuildJoins("")}"; } else if (Tables.Count == 1) { - // Table name is bracketed with multiple joins... - query += " FROM " + Joins.BuildJoins(Tables.Concat(tableAliasOperator, false)[0]); + // Single Table name is bracketed with multiple joins. + query += $" FROM {Joins.BuildJoins(Tables.Concat(tableAliasOperator, false)[0])}"; } query.TrimEnd(' '); @@ -732,24 +738,24 @@ namespace Sarand.Net.Standard.Base.Dbas // Filters. String filter = Filters.Concat(" AND ", "(", ")", true, true); // Jan2019 Not required: if (Filters.Count > 1) filter = "(" + filter + ")"; - if (!filter.IsEmpty()) query += " WHERE " + filter; + if (!filter.IsEmpty()) query += $" WHERE {filter}"; // Groupings. - String groupByData = GroupBy.Concat(",", "", "", true, true); - if (!groupByData.IsEmpty()) query += " GROUP BY " + groupByData; + String groupByClause = GroupBy.Concat(",", "", "", true, true); + if (!groupByClause.IsEmpty()) query += $" GROUP BY {groupByClause}"; // Sort sequence. - String orderByData = OrderBy.Concat(",", "", "", true, true); - if (!orderByData.IsEmpty()) query += " ORDER BY " + orderByData; + String orderByClause = OrderBy.Concat(",", "", "", true, true); + if (!orderByClause.IsEmpty()) query += $" ORDER BY {orderByClause}"; // Paging. if (paging != null && paging.Paged) { // Must have an 'Order By' clause to use 'Offset ... Fetch Next ...' - if (orderByData.IsEmpty()) + if (orderByClause.IsEmpty()) throw new NotSupportedException("Query paging requires sort order to be specified"); if (DbGlobalDbms.Type == DbmsType.MsSql) - query += " OFFSET " + ((paging.PageNo - 1) * paging.PageLength) + " ROWS FETCH NEXT " + paging.PageLength + " ROWS ONLY"; + query += $" OFFSET {((paging.PageNo - 1) * paging.PageLength)} ROWS FETCH NEXT {paging.PageLength} ROWS ONLY"; else throw new NotSupportedException($"Query paging not supported for {DbGlobalDbms.Type}"); } @@ -757,7 +763,7 @@ namespace Sarand.Net.Standard.Base.Dbas #if DEBUG bool bDisplayDebugMsg = false; if (bDisplayDebugMsg) - SaLogger.Debug("Query: " + query); + SaLogger.Debug($"Query: {query}"); #endif //--------------------------------------------------------------------- diff --git a/SacsStandardBase/SacsStandardBase.csproj b/SacsStandardBase/SacsStandardBase.csproj index 7006309..8b9afc3 100644 --- a/SacsStandardBase/SacsStandardBase.csproj +++ b/SacsStandardBase/SacsStandardBase.csproj @@ -7,11 +7,11 @@ - - - + + + - + diff --git a/SacsStandardDbas/Dbas/CodeTypes/SaCodeTypeConsole_Dbas.cs b/SacsStandardDbas/Dbas/CodeTypes/SaCodeTypeConsole_Dbas.cs index 47c6fa3..4c02055 100644 --- a/SacsStandardDbas/Dbas/CodeTypes/SaCodeTypeConsole_Dbas.cs +++ b/SacsStandardDbas/Dbas/CodeTypes/SaCodeTypeConsole_Dbas.cs @@ -351,7 +351,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes //------------------------------------------------------------------- // Get filtered codes, indexed by Code Type code. - public override Dictionary> GetCodesByCodeType(SaCode.Params prmCode) + public override Dictionary> GetCodes(SaCode.Params prmCode) { ClearErrorState(); @@ -367,7 +367,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes // Convert Code Type identity from Id to code and sort each list of codes appropriately. return ConvertCodeTypeIdentityAndSortCodes(codesByCodeTypeId, codeTypes); } - public override async Task>> GetCodesByCodeTypeAsync(SaCode.Params prmCode) + public override async Task>> GetCodesAsync(SaCode.Params prmCode) { ClearErrorState(); diff --git a/SacsStandardDbas/Dbas/CodeTypes/SaCodeTypeMgr_Dbas.cs b/SacsStandardDbas/Dbas/CodeTypes/SaCodeTypeMgr_Dbas.cs index 973d601..a999c73 100644 --- a/SacsStandardDbas/Dbas/CodeTypes/SaCodeTypeMgr_Dbas.cs +++ b/SacsStandardDbas/Dbas/CodeTypes/SaCodeTypeMgr_Dbas.cs @@ -470,7 +470,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes private long GetCodeTypeCount(String filter) { ClearErrorState(); - return Database.GetRowCount(TableName_CodeType + " As " + aliasCodeType, filter); + return Database.GetRowCount($"{TableName_CodeType} As {aliasCodeType}", filter); } //------------------------------------------------------------------- @@ -1030,7 +1030,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes private long GetCodeCount(String filter) { ClearErrorState(); - return Database.GetRowCount(TableName_Code + " As " + aliasCode, filter); + return Database.GetRowCount($"{TableName_Code} As {aliasCode}", filter); } public override long GetCodeCount(SaCode.Params prm) { diff --git a/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceDataItems.cs b/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceDataItems.cs index 596d695..219035f 100644 --- a/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceDataItems.cs +++ b/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceDataItems.cs @@ -497,7 +497,7 @@ namespace Sarand.Net.Standard.Dbas.Interfaces private long GetInterfaceDataItemCount(String filter) { ClearErrorState(); - return Database.GetRowCount(TableName_InterfaceDataItem + " As " + aliasInterfaceDataItem, filter); + return Database.GetRowCount($"{TableName_InterfaceDataItem} As {aliasInterfaceDataItem}", filter); } public override long GetInterfaceDataItemCount(SaInterfaceDataItem.Params prm) { diff --git a/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceProcessMessages.cs b/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceProcessMessages.cs index 41085a6..1a2325d 100644 --- a/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceProcessMessages.cs +++ b/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceProcessMessages.cs @@ -383,7 +383,7 @@ namespace Sarand.Net.Standard.Dbas.Interfaces private long GetInterfaceProcessMessageCount(String filter) { ClearErrorState(); - return Database.GetRowCount(TableName_InterfaceProcessMessage + " As " + aliasInterfaceProcessMessage, filter); + return Database.GetRowCount($"{TableName_InterfaceProcessMessage} As {aliasInterfaceProcessMessage}", filter); } public override long GetInterfaceProcessMessageCount(SaInterfaceProcessMessage.Params prm) { diff --git a/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceProcesses.cs b/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceProcesses.cs index 39a8d00..bf3aa2a 100644 --- a/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceProcesses.cs +++ b/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-InterfaceProcesses.cs @@ -621,7 +621,7 @@ namespace Sarand.Net.Standard.Dbas.Interfaces private long GetInterfaceProcessCount(String filter) { ClearErrorState(); - return Database.GetRowCount(TableName_InterfaceProcess + " As " + aliasInterfaceProcess, filter); + return Database.GetRowCount($"{TableName_InterfaceProcess} As {aliasInterfaceProcess}", filter); } public override long GetInterfaceProcessCount(SaInterfaceProcess.Params prm) { diff --git a/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-Interfaces.cs b/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-Interfaces.cs index eed06e4..bac060d 100644 --- a/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-Interfaces.cs +++ b/SacsStandardDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas-Interfaces.cs @@ -456,7 +456,7 @@ namespace Sarand.Net.Standard.Dbas.Interfaces private long GetInterfaceCount (String filter) { ClearErrorState(); - return Database.GetRowCount(TableName_Interface + " As " + aliasInterface, filter); + return Database.GetRowCount($"{TableName_Interface} As {aliasInterface}", filter); } public override long GetInterfaceCount (SaInterface.Params prm) { diff --git a/SacsStandardDbas/Dbas/ItemData/SaItemDataMgr_Dbas.cs b/SacsStandardDbas/Dbas/ItemData/SaItemDataMgr_Dbas.cs index 16b34c8..6cd856c 100644 --- a/SacsStandardDbas/Dbas/ItemData/SaItemDataMgr_Dbas.cs +++ b/SacsStandardDbas/Dbas/ItemData/SaItemDataMgr_Dbas.cs @@ -486,7 +486,7 @@ namespace Sarand.Net.Standard.Dbas.ItemData private long GetItemDataCount(String filter) { ClearErrorState(); - return Database.GetRowCount(SaItemDataDbDfn.GetTableName(SaItemDataDbDfn.TableIdx.SaItemData) + " As " + aliasItemData, filter); + return Database.GetRowCount($"{SaItemDataDbDfn.GetTableName(SaItemDataDbDfn.TableIdx.SaItemData)} As {aliasItemData}", filter); } public override long GetItemDataCount(SaItemData.Params prm) { diff --git a/SacsStandardDbas/Dbas/ItemDocs/SaItemDocMgr_Dbas.cs b/SacsStandardDbas/Dbas/ItemDocs/SaItemDocMgr_Dbas.cs index ceabac0..9295532 100644 --- a/SacsStandardDbas/Dbas/ItemDocs/SaItemDocMgr_Dbas.cs +++ b/SacsStandardDbas/Dbas/ItemDocs/SaItemDocMgr_Dbas.cs @@ -522,7 +522,7 @@ namespace Sarand.Net.Standard.Dbas.ItemDocs private long GetItemDocCount (String filter) { ClearErrorState(); - return Database.GetRowCount(SaItemDocsDbDfn.GetTableName(SaItemDocsDbDfn.TableIdx.SaItemDoc) + " As " + aliasItemDoc, filter); + return Database.GetRowCount($"{SaItemDocsDbDfn.GetTableName(SaItemDocsDbDfn.TableIdx.SaItemDoc)} As {aliasItemDoc}", filter); } public override long GetItemDocCount (SaItemDoc.Params prm) { diff --git a/SacsStandardDbas/Dbas/ItemOptions/SaItemOptionMgr_Dbas.cs b/SacsStandardDbas/Dbas/ItemOptions/SaItemOptionMgr_Dbas.cs index 46ec93c..93e3daa 100644 --- a/SacsStandardDbas/Dbas/ItemOptions/SaItemOptionMgr_Dbas.cs +++ b/SacsStandardDbas/Dbas/ItemOptions/SaItemOptionMgr_Dbas.cs @@ -475,7 +475,7 @@ namespace Sarand.Net.Standard.Dbas.ItemOptions private long GetItemOptionCount (String filter) { ClearErrorState(); - return Database.GetRowCount(SaItemOptionDbDfn.GetTableName(SaItemOptionDbDfn.TableIdx.SaItemOption) + " As " + aliasItemOption, filter); + return Database.GetRowCount($"{SaItemOptionDbDfn.GetTableName(SaItemOptionDbDfn.TableIdx.SaItemOption)} As {aliasItemOption}", filter); } public override long GetItemOptionCount (SaItemOption.Params prm) { diff --git a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Currency.cs b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Currency.cs index 6aeff76..ee8a886 100644 --- a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Currency.cs +++ b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Currency.cs @@ -412,7 +412,7 @@ namespace Sarand.Net.Standard.Dbas.ReferenceData private long GetCurrencyCount(String filter) { ClearErrorState(); - return Database.GetRowCount(ReferenceDataConsole.TableName_Currency + " As " + aliasCurrency, filter); + return Database.GetRowCount($"{ReferenceDataConsole.TableName_Currency} As {aliasCurrency}", filter); } public override long GetCurrencyCount(SaCurrency.Params prm) { diff --git a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Language.cs b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Language.cs index 4a004b1..353aa7d 100644 --- a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Language.cs +++ b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Language.cs @@ -423,7 +423,7 @@ namespace Sarand.Net.Standard.Dbas.ReferenceData private long GetLanguageCount(String filter) { ClearErrorState(); - return Database.GetRowCount(ReferenceDataConsole.TableName_Language + " As " + aliasLanguage, filter); + return Database.GetRowCount($"{ReferenceDataConsole.TableName_Language} As {aliasLanguage}", filter); } public override long GetLanguageCount(SaLanguage.Params prm) { diff --git a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Region.cs b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Region.cs index 2d78c5b..0543f3b 100644 --- a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Region.cs +++ b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-Region.cs @@ -400,7 +400,7 @@ namespace Sarand.Net.Standard.Dbas.ReferenceData private long GetRegionCount(String filter) { ClearErrorState(); - return Database.GetRowCount(ReferenceDataConsole.TableName_Region + " As " + aliasRegion, filter); + return Database.GetRowCount($"{ReferenceDataConsole.TableName_Region} As {aliasRegion}", filter); } public override long GetRegionCount(SaRegion.Params prm) { diff --git a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-TaxCode.cs b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-TaxCode.cs index 4b6a1fe..5318aa8 100644 --- a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-TaxCode.cs +++ b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-TaxCode.cs @@ -442,7 +442,7 @@ namespace Sarand.Net.Standard.Dbas.ReferenceData private long GetTaxCodeCount(String filter) { ClearErrorState(); - return Database.GetRowCount(ReferenceDataConsole.TableName_TaxCode + " As " + aliasTaxCode, filter); + return Database.GetRowCount($"{ReferenceDataConsole.TableName_TaxCode} As {aliasTaxCode}", filter); } public override long GetTaxCodeCount(SaTaxCode.Params prm) { diff --git a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-UnitMeasure.cs b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-UnitMeasure.cs index dc08826..9d48bb2 100644 --- a/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-UnitMeasure.cs +++ b/SacsStandardDbas/Dbas/ReferenceData/SbmReferenceDataMgr_Dbas-UnitMeasure.cs @@ -443,7 +443,7 @@ namespace Sarand.Net.Standard.Dbas.ReferenceData private long GetUnitMeasureCount(String filter) { ClearErrorState(); - return Database.GetRowCount(ReferenceDataConsole.TableName_UnitMeasure + " As " + aliasUnitMeasure, filter); + return Database.GetRowCount($"{ReferenceDataConsole.TableName_UnitMeasure} As {aliasUnitMeasure}", filter); } public override long GetUnitMeasureCount(SaUnitMeasure.Params prm) { diff --git a/SacsStandardDbas/Dbas/Security/SaSecurityMgr_Dbas-SecurityItem.cs b/SacsStandardDbas/Dbas/Security/SaSecurityMgr_Dbas-SecurityItem.cs index 4a5f4b3..b0d3767 100644 --- a/SacsStandardDbas/Dbas/Security/SaSecurityMgr_Dbas-SecurityItem.cs +++ b/SacsStandardDbas/Dbas/Security/SaSecurityMgr_Dbas-SecurityItem.cs @@ -529,7 +529,7 @@ namespace Sarand.Net.Standard.Dbas.Security private long GetSecurityItemCount(String filter) { ClearErrorState(); - return Database.GetRowCount(TableName_SecItem + " As " + aliasSecurityItem, filter); + return Database.GetRowCount($"{TableName_SecItem} As {aliasSecurityItem}", filter); } public override long GetSecurityItemCount(SaSecurityItem.Params prm) { diff --git a/SacsStandardDbas/Dbas/Security/SaSecurityMgr_Dbas-SecurityLink.cs b/SacsStandardDbas/Dbas/Security/SaSecurityMgr_Dbas-SecurityLink.cs index 249208b..0fff859 100644 --- a/SacsStandardDbas/Dbas/Security/SaSecurityMgr_Dbas-SecurityLink.cs +++ b/SacsStandardDbas/Dbas/Security/SaSecurityMgr_Dbas-SecurityLink.cs @@ -389,7 +389,7 @@ namespace Sarand.Net.Standard.Dbas.Security private long GetSecurityLinkCount(String filter) { ClearErrorState(); - return Database.GetRowCount(TableName_SecLink + " As " + aliasSecurityLink, filter); + return Database.GetRowCount($"{TableName_SecLink} As {aliasSecurityLink}", filter); } public override long GetSecurityLinkCount(SaSecurityLink.Params prm) { diff --git a/SacsStandardDbas/Dbas/UpdateLog/SaUpdateLogMgr_Dbas.cs b/SacsStandardDbas/Dbas/UpdateLog/SaUpdateLogMgr_Dbas.cs index cb572f8..c08ef6c 100644 --- a/SacsStandardDbas/Dbas/UpdateLog/SaUpdateLogMgr_Dbas.cs +++ b/SacsStandardDbas/Dbas/UpdateLog/SaUpdateLogMgr_Dbas.cs @@ -549,7 +549,7 @@ namespace Sarand.Net.Standard.Dbas.UpdateLog private long GetUpdateLogEntryCount (String filter) { ClearErrorState(); - return Database.GetRowCount(SaUpdateLogDbDfn.GetTableName(SaUpdateLogDbDfn.TableIdx.SaAttrUpdate) + " As " + aliasUpdateLog, filter); + return Database.GetRowCount($"{SaUpdateLogDbDfn.GetTableName(SaUpdateLogDbDfn.TableIdx.SaAttrUpdate)} As {aliasUpdateLog}", filter); } public override long GetLogEntryCount (SaUpdateLogEntry.Params prm) { diff --git a/SacsStandardProc/SacsStandardProc.csproj b/SacsStandardProc/SacsStandardProc.csproj index c3edb22..491f14d 100644 --- a/SacsStandardProc/SacsStandardProc.csproj +++ b/SacsStandardProc/SacsStandardProc.csproj @@ -10,8 +10,8 @@ - - + +