126 lines
3.6 KiB
C#
126 lines
3.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Data.SqlClient;
|
|
using Microsoft.Data.SqlClient;
|
|
|
|
namespace De.Lambertz.Essentials
|
|
{
|
|
public class KernParameterSingelton : ISingelton
|
|
{
|
|
private static KernParameterSingelton me = null;
|
|
static readonly object padlock0 = new object(); //Threadsafe!!
|
|
//
|
|
private String sessionID = null;
|
|
private Encoding encoding = Encoding.Default;
|
|
//
|
|
private Dictionary<String, String> programmVerknüpfungen = null;
|
|
private bool istProgrammVerknüpfungenDirty = true;
|
|
|
|
private KernParameterSingelton()
|
|
{
|
|
|
|
}
|
|
|
|
public static KernParameterSingelton GetInstance()
|
|
{
|
|
lock (padlock0)
|
|
{
|
|
if (me == null)
|
|
{
|
|
me = new KernParameterSingelton();
|
|
SingeltonManager.GetInstance().RegisterSingelton(me);
|
|
}
|
|
return me;
|
|
}
|
|
}
|
|
|
|
public void ManagedReset(string userName)
|
|
{
|
|
lock (padlock0)
|
|
{
|
|
me = new KernParameterSingelton();
|
|
}
|
|
}
|
|
|
|
public void ManagedKill()
|
|
{
|
|
lock (padlock0)
|
|
{
|
|
me = null;
|
|
}
|
|
}
|
|
|
|
public String SessionID
|
|
{
|
|
get { return sessionID; }
|
|
set { sessionID = value; }
|
|
}
|
|
|
|
public Encoding Encoding
|
|
{
|
|
get { return encoding; }
|
|
set { encoding = value; }
|
|
}
|
|
|
|
public void ProgrammVerknüpfungenSindDirty()
|
|
{
|
|
istProgrammVerknüpfungenDirty = true;
|
|
}
|
|
|
|
public String ProgrammVerknüpfung(String endungMitPunkt)
|
|
{
|
|
if (istProgrammVerknüpfungenDirty)
|
|
{
|
|
programmVerknüpfungenLaden();
|
|
}
|
|
|
|
String result = null;
|
|
|
|
if (programmVerknüpfungen.ContainsKey(endungMitPunkt))
|
|
{
|
|
result = programmVerknüpfungen[endungMitPunkt];
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public Dictionary<String, String> ProgrammVerknüpfungen
|
|
{
|
|
get
|
|
{
|
|
if (istProgrammVerknüpfungenDirty)
|
|
{
|
|
programmVerknüpfungenLaden();
|
|
}
|
|
|
|
return programmVerknüpfungen;
|
|
}
|
|
}
|
|
|
|
private void programmVerknüpfungenLaden()
|
|
{
|
|
programmVerknüpfungen = new Dictionary<string, string>();
|
|
using (SqlConnection con = new SqlConnection(DBTools.ConnectionStringLAMBERTZ()))
|
|
{
|
|
con.Open();
|
|
String sql = "SELECT [Endung], [ProgrammPfad] FROM [Lambertz].[LA].[PortalReProVer] where [RechnerName] = @p1 order by [Endung]";
|
|
SqlCommand cmd = new SqlCommand(sql, con);
|
|
cmd.Parameters.AddWithValue("@p1", EssentialTools.RechnerName());
|
|
using (SqlDataReader reader = cmd.ExecuteReader())
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
String key = DBTools.DBGetString(reader, 0);
|
|
if (!programmVerknüpfungen.ContainsKey(key))
|
|
{
|
|
programmVerknüpfungen.Add(key, DBTools.DBGetString(reader, 1));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
istProgrammVerknüpfungenDirty = false;
|
|
}
|
|
}
|
|
}
|