Performance Verbesserung bei Gruppenbuchungen->Ziele ermitteln, Bugfixing Jahresbericht, Terminator erweitert, BeWoToolUser eingebaut
This commit is contained in:
@@ -22,6 +22,8 @@ namespace BeWoDatabaseTerminator
|
||||
private const string PubKeyR3 = "3082010A0282010100BB021528CCF6A094D30F12EC8D5592C3F882F199A67A4288A75D26AAB52BB9C54CB1AF8E6BF975C8A3D70F4794145535578C9EA8A23919F5823C42A94E6EF53BC32EDB8DC0B05CF35938E7EDCF69F05A0B1BBEC094242587FA3771B313E71CACE19BEFDBE43B45524596A9C153CE34C852EEB5AEED8FDE6070E2A554ABB66D0E97A540346B2BD3BC66EB66347CFA6B8B8F572999F830175DBA726FFB81C5ADD286583D17C7E709BBF12BF786DCC1DA715DD446E3CCAD25C188BC60677566B3F118F7A25CE653FF3A88B647A5FF1318EA9809773F9D53F9CF01E5F5A6701714AF63A4FF99B3939DDC53A706FE48851DA169AE2575BB13CC5203F5ED51A18BDB150203010001";
|
||||
private const string PubKeyE1 = "04245C2DA22AFD1C4BA65D97732731ACB2A06962EF65E8A6B0F0AC4B9FFF1C0B700FD3982F4DFC0F009B37F074055732972E05EF2A4325A3FB6E342713F64F7E69D302995EEB244792C1249BE6B1218FC12481FC68CC1F69BA58F51922F774C616";
|
||||
|
||||
private const string APIKEY = "CwjlSCbNqctEsofpGY64Z4aO6pShNYAdGtjMqHsjO64FuK23qoRDUqIjUC0P";
|
||||
|
||||
private static string _ConnectionStringServer;
|
||||
private static string _ConnectionStringPassword;
|
||||
private static string _ConnectionStringUserID;
|
||||
@@ -159,7 +161,8 @@ namespace BeWoDatabaseTerminator
|
||||
if(contractStatus.Deactivate == 1)
|
||||
{
|
||||
FileUtils.WriteLog($"Deaktiviere Datenbank `{contractStatus.Tenant}`.", _LogFilePath);
|
||||
ToggleConfigActivation(contractStatus.Tenant, false);
|
||||
ToggleConfigActivation(contractStatus, false);
|
||||
|
||||
}
|
||||
|
||||
if(contractStatus.Delete == 1)
|
||||
@@ -282,7 +285,7 @@ namespace BeWoDatabaseTerminator
|
||||
FileUtils.WriteLog($"Die Config-Datei '{tenant}.config.deactivated' existiert.", _LogFilePath);
|
||||
//connectionString = isExisting ? ExtractConnectionString(configFilePath) : connectionString;
|
||||
|
||||
ToggleConfigActivation(tenant, true);
|
||||
ToggleConfigActivation(contractStatus, true);
|
||||
|
||||
//if(!isExisting)
|
||||
//{
|
||||
@@ -296,7 +299,7 @@ namespace BeWoDatabaseTerminator
|
||||
|
||||
RunCreateScripts(tenant, connectionString);
|
||||
|
||||
await SendInitialPasswordToTool(contractStatus, "CwjlSCbNqctEsofpGY64Z4aO6pShNYAdGtjMqHsjO64FuK23qoRDUqIjUC0P");
|
||||
await SendInitialPasswordToTool(contractStatus);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -304,25 +307,27 @@ namespace BeWoDatabaseTerminator
|
||||
/// Löscht die angegebene Datenbank.
|
||||
/// </summary>
|
||||
/// <param name="tenant">Kundennummer, die gleichzeitig auch der Name der Datenbank ist.</param>
|
||||
private static void DeleteDatabase(string tenant)
|
||||
private static void DeleteDatabase(ContractStatus contractStatus)
|
||||
{
|
||||
var configFile = Path.Combine(_MultitenancyPath, $"{tenant}.config.deactivated");
|
||||
var configFile = Path.Combine(_MultitenancyPath, $"{contractStatus.Tenant}.config.deactivated");
|
||||
|
||||
if(File.Exists(configFile))
|
||||
{
|
||||
var connectionString = ExtractConnectionString(configFile);
|
||||
var mySqlHelper = new MySqlHelper(connectionString);
|
||||
|
||||
mySqlHelper.DeleteDatabase(tenant);
|
||||
mySqlHelper.DeleteDatabase(contractStatus.Tenant);
|
||||
|
||||
File.Delete(configFile);
|
||||
|
||||
FileUtils.WriteLog($"Datenbank `{tenant}` und {tenant}.config.deactivated wurden gelöscht.", _LogFilePath);
|
||||
FileUtils.WriteLog($"Datenbank `{contractStatus.Tenant}` und {contractStatus.Tenant}.config.deactivated wurden gelöscht.", _LogFilePath);
|
||||
|
||||
SendDBStatusToTool(contractStatus, false, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogUtils.LogMessage($"Die Config-Datei für Datenbank `{tenant}` existiert nicht.", ConsoleColor.Red, ConsoleColor.Black);
|
||||
FileUtils.WriteLog($"{tenant}.config nicht gefunden. Datenbank `{tenant}`, falls vorhanden, nicht gelöscht.", _LogFilePath);
|
||||
LogUtils.LogMessage($"Die Config-Datei für Datenbank `{contractStatus.Tenant}` existiert nicht.", ConsoleColor.Red, ConsoleColor.Black);
|
||||
FileUtils.WriteLog($"{contractStatus.Tenant}.config nicht gefunden. Datenbank `{contractStatus.Tenant}`, falls vorhanden, nicht gelöscht.", _LogFilePath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,10 +336,10 @@ namespace BeWoDatabaseTerminator
|
||||
/// </summary>
|
||||
/// <param name="tenant">Kundennummer der zu de- bwz. reaktivierenden Datenbank.</param>
|
||||
/// <param name="isToBeActivated">Ob de- oder reaktiviert werden soll.</param>
|
||||
private static void ToggleConfigActivation(string tenant, bool isToBeActivated)
|
||||
private static void ToggleConfigActivation(ContractStatus contractStatus, bool isToBeActivated)
|
||||
{
|
||||
var fileName1 = isToBeActivated ? $"{tenant}.config.deactivated" : $"{tenant}.config";
|
||||
var fileName2 = isToBeActivated ? $"{tenant}.config" : $"{tenant}.config.deactivated";
|
||||
var fileName1 = isToBeActivated ? $"{contractStatus.Tenant}.config.deactivated" : $"{contractStatus.Tenant}.config";
|
||||
var fileName2 = isToBeActivated ? $"{contractStatus.Tenant}.config" : $"{contractStatus.Tenant}.config.deactivated";
|
||||
|
||||
var path1 = Path.Combine(_MultitenancyPath, fileName1);
|
||||
var path2 = Path.Combine(_MultitenancyPath, fileName2);
|
||||
@@ -345,9 +350,14 @@ namespace BeWoDatabaseTerminator
|
||||
if(File.Exists(path1))
|
||||
{
|
||||
File.Delete(path1);
|
||||
|
||||
if (!isToBeActivated)
|
||||
{
|
||||
SendDBStatusToTool(contractStatus, true, false);
|
||||
}
|
||||
}
|
||||
|
||||
FileUtils.WriteLog($"{tenant}.config {(isToBeActivated == false ? "de" : string.Empty)}aktiviert.", _LogFilePath);
|
||||
FileUtils.WriteLog($"{contractStatus.Tenant}.config {(isToBeActivated == false ? "de" : string.Empty)}aktiviert.", _LogFilePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -425,7 +435,7 @@ namespace BeWoDatabaseTerminator
|
||||
/// <param name="contractStatus">ContractStatus für den eine neue Datenbank angelegt werden soll.</param>
|
||||
/// <param name="apiKey">Der für das Tool nötige API-Key.</param>
|
||||
/// <returns>Der Rückgabetyp bei asynchronen Methoden ist Task, wenn er sonst void wäre.</returns>
|
||||
private static async Task SendInitialPasswordToTool(ContractStatus contractStatus, string apiKey)
|
||||
private static async Task SendInitialPasswordToTool(ContractStatus contractStatus)
|
||||
{
|
||||
var mySqlHelper1 = new MySqlHelper($"Server={_ConnectionStringServer};Password={_ConnectionStringPassword};User ID={_ConnectionStringUserID};Port={_ConnectionStringPort}");
|
||||
var databaseExists = false;
|
||||
@@ -438,12 +448,12 @@ namespace BeWoDatabaseTerminator
|
||||
FileUtils.WriteLog(exception?.ToString(), _LogFilePath);
|
||||
}
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(apiKey) && !(contractStatus is null) && databaseExists)
|
||||
if(!(contractStatus is null) && databaseExists)
|
||||
{
|
||||
var password = PasswordHelper.GenerateInitialPassword(new Random());
|
||||
|
||||
|
||||
var uri = new Uri($"https://support.bewoplaner.de/api/save_initialpw.php?APIKEY1={apiKey}&LicenseTypeID={contractStatus.LicenseTypeId}&CustomerID={contractStatus.Tenant}&InitialPW={password}");
|
||||
var uri = new Uri($"https://support.bewoplaner.de/api/save_initialpw.php?APIKEY1={APIKEY}&LicenseTypeID={contractStatus.LicenseTypeId}&CustomerID={contractStatus.Tenant}&InitialPW={password}");
|
||||
|
||||
var request = (HttpWebRequest) WebRequest.Create(uri);
|
||||
|
||||
@@ -509,17 +519,57 @@ namespace BeWoDatabaseTerminator
|
||||
}
|
||||
else
|
||||
{
|
||||
var logMessage = string.Empty;
|
||||
var logMessage = $"SendInitialPasswordToTool ContractStatus ist null";
|
||||
|
||||
|
||||
if(string.IsNullOrWhiteSpace(apiKey))
|
||||
FileUtils.WriteLog(logMessage, _LogFilePath);
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task SendDBStatusToTool(ContractStatus contractStatus, bool deactivated, bool deleted)
|
||||
{
|
||||
if (contractStatus != null)
|
||||
{
|
||||
String t = "";
|
||||
if (deactivated)
|
||||
{
|
||||
logMessage += "API-Key ist null oder leer";
|
||||
t = "1";
|
||||
}
|
||||
if (deleted)
|
||||
{
|
||||
t = "2";
|
||||
}
|
||||
var uri = new Uri($"https://support.bewoplaner.de/api/dbstate.php?APIKEY1={APIKEY}&LicenseTypeID={contractStatus.LicenseTypeId}&CustomerID={contractStatus.Tenant}&Type={t}");
|
||||
|
||||
if(contractStatus is null)
|
||||
var request = (HttpWebRequest)WebRequest.Create(uri);
|
||||
|
||||
|
||||
FileUtils.WriteLog($"Sende Status für Datenbank `{contractStatus.Tenant}` an API.", _LogFilePath);
|
||||
try
|
||||
{
|
||||
logMessage += $"{(logMessage.Length > 0 ? " " : string.Empty)}ContractStatus ist null";
|
||||
using (var response = (HttpWebResponse)await request.GetResponseAsync())
|
||||
{
|
||||
if (response.GetResponseStream() is Stream reponseStream)
|
||||
{
|
||||
using (var reader = new StreamReader(reponseStream, Encoding.UTF8))
|
||||
{
|
||||
var text = await reader.ReadToEndAsync();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
FileUtils.WriteLog(exception?.ToString(), _LogFilePath);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var logMessage = $"SendDBStatusToTool ContractStatus ist null";
|
||||
|
||||
|
||||
FileUtils.WriteLog(logMessage, _LogFilePath);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user