You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

165 lines
6.3 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using Microsoft.VisualBasic;
using System.DirectoryServices;
using BeAUserSync.AD;
using System.DirectoryServices.Protocols;
using System.Data;
// Parameter
// ADTest - Test von AD-Zugriffen
// NoAD - Update E-Mail-Adresse mit TGNummer+@tkb.ch
// Normal - Update - E-Mail-Adresse über AD
namespace BeAUserSync
{
class Program
{
private const string CONFIG_ITEM_DIRECTORY = @"ConfigurationItems\";
private const string AD_CONFIGURATION_ITEM_NAME = "ActiveDirectory";
private static db database = new db();
private static db adlog = new db();
static string dataselect = "";
string s = "";
static void Main(string[] args)
{
dataselect = Properties.Settings.Default.Dataselect;
if (dataselect != "")
{
dataselect = "Select top " + dataselect + " Personalnr, TGNummer, EMail from personal where aktiv=1 and isnull(tgnummer,'')<>''";
}
else
{
dataselect = "Select Personalnr, TGNummer, EMail from personal where aktiv = 1 and isnull(tgnummer,'')<>''";
}
Console.WriteLine(dataselect);
string arg = "";
if (args.Length != 0)
{
arg = args[0];
if (arg != "ADTest" && arg != "NoAD" && arg != "Normal")
{
Console.WriteLine("Fehlerhafte Argumente - möglich sind:");
Console.WriteLine("ADTest - Kommandozeilen-Test für AD-Zugriffe");
Console.WriteLine("NoAD - DB-Update ohne AD - Email aus TGNummer und @tkb.ch");
Console.WriteLine("Normal - E-Mail-Bezug aus AD");
string res = "";
res = Console.ReadLine();
return;
}
switch (arg)
{
case "ADTest":
SHUAD sad = new SHUAD();
if (sad.Connect_to_Server() == true)
{
Console.WriteLine("Connection OK");
}
else
{
Console.WriteLine("Connection NOK");
Console.WriteLine(sad.ErrorMessage);
}
string user = "";
Console.WriteLine("UserID:");
user = Console.ReadLine();
while (user != "")
{
try
{
Console.WriteLine(sad.get_mail_from_user(user));
Console.WriteLine("");
Console.WriteLine("UserID:");
user = Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
user = "";
user = Console.ReadLine();
}
}
break;
case "NoAD":
adlog.Get_Tabeldata_for_Update("Select * from adlog where id=-1");
Log_Insert("Start Abgleich");
database.Get_Tabeldata_for_Update(dataselect);
foreach (DataRow dr in database.dsdaten.Tables[0].Rows)
{
string email = "";
email = dr["tgnummer"].ToString() + "@tkb.ch";
if (email != "" && email != dr["email"].ToString())
{
dr["email"] = email;
Log_Insert(dr["tgnummer"].ToString() + " - " + email);
}
}
database.Update_Tabeldata();
Log_Insert("Ende Abgleich");
adlog.Update_Tabeldata();
break;
default:
SHUAD ad = new SHUAD();
if (ad.Connect_to_Server() != true)
{
Console.WriteLine("Connection NOK");
return;
}
adlog.Get_Tabeldata_for_Update("Select * from adlog where id=-1");
Log_Insert("Start Abgleich");
database.Get_Tabeldata_for_Update(dataselect);
foreach (DataRow dr in database.dsdaten.Tables[0].Rows)
{
string email = "";
Console.WriteLine(dr["tgnummer"]);
email = ad.get_mail_from_user(dr["tgnummer"].ToString());
if (email != "" && email != dr["email"].ToString())
{
dr["email"] = email;
Log_Insert(dr["tgnummer"].ToString() + " - " + email);
}
else
{
if (email == "")
{
Log_Insert(dr["tgnummer"].ToString() + " - kein AD-Eintrag");
}
}
}
database.Update_Tabeldata();
Log_Insert("Ende Abgleich");
adlog.Update_Tabeldata();
break;
}
}
}
static void Log_Insert(string logentry)
{
DataRow dr = adlog.dsdaten.Tables[0].NewRow();
dr["Eintrag"] = logentry;
dr["Zeit"] = DateTime.Now;
adlog.dsdaten.Tables[0].Rows.Add(dr);
}
}
}