kmCustomReportsNET/ClassObj/ClsConstants.cs

88 lines
2.4 KiB
C#
Raw Normal View History

2025-10-17 06:03:43 -04:00
using Microsoft.Data.SqlClient;
using Dapper;
using System;
2025-10-08 02:16:58 -04:00
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
2025-10-17 06:03:43 -04:00
using System.Collections.Concurrent;
2025-10-08 02:16:58 -04:00
namespace kmCustomReportsNET.ClassObj;
public class ClsConstants
{
public static string KDrive = @"\\salem\k";
/// <summary>
/// T = Dot-Net (C#) version of the reports
/// </summary>
public enum enuReportIDs : byte
{
/// <summary>
/// Dobbs Monthly Email Contests
/// </summary>
T1439 = 101
}
2025-10-17 06:03:43 -04:00
static ConcurrentDictionary<string, DateTimeOffset> dctScheduler = new(StringComparer.OrdinalIgnoreCase);
internal static string GetCustomerRegistryItem(string KeyName)
{
string rv = string.Empty;
try
{
using (var cn = new SqlConnection(kmCommonLibsCore.Constants.GetCnString(kmCommonLibsCore.Constants.enuServer.RDB)))
{
var Sql = "Select [Value] From crpt.[Registry] Where [Key]=@Key And [Enabled]=1";
var parms = new { Key = KeyName };
var theValue = cn.ExecuteScalar(Sql, parms);
if (theValue != null && !string.IsNullOrWhiteSpace(theValue.ToString()))
rv = theValue?.ToString() ?? string.Empty;
}
}
catch (Exception ex)
{
kmCommonLibsCore.ClsErrorReporting.ErrorEncountered(ex);
rv = string.Empty;
}
return rv;
}
internal static void SetCustomerRegistryItem(string KeyName, string Value)
{
using (var cn = new SqlConnection(kmCommonLibsCore.Constants.GetCnString(kmCommonLibsCore.Constants.enuServer.RDB)))
{
var Sql = "Select Count(*) As Cnt From crpt.[Registry] Where [Key]=@Key And [Enabled]=1";
var parms = new { Key = KeyName };
int cnt = cn.ExecuteScalar<int>(Sql, parms);
if (cnt < 1)
Sql = "Insert Into crpt.[Registry] ([Key], [Value], [Enabled]) Values (@Key, @Value, 1)";
else
Sql = "Update crpt.[Registry] Set [Value]=@Value, [DateChanged]=SysDateTimeOffset() Where [Key]=@Key And [Enabled]=1";
cn.Execute(Sql, parms);
}
}
internal static bool NeedToRun(string TaskName)
{
bool rv = false;
if (!dctScheduler.ContainsKey(TaskName) || dctScheduler[TaskName] < DateTimeOffset.Now)
rv = true;
else
rv = false;
return rv;
}
internal static void SetNextRun(string TaskName, DateTimeOffset theTime)
{
dctScheduler[TaskName] = theTime;
}
2025-10-08 02:16:58 -04:00
}