Files
BeWoPlaner/Service/Configuration/AppSettings.cs
Christian cec4eea417 Neue Einstellungen in der Verwaltung:
- Start Mitarbeiterstundenkonto
- Anzahl Tage in der die Arbeitszeiterfassung erfolgen muss
2025-10-24 02:02:10 +02:00

370 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.Core;
namespace BeWo.Service.Configuration
{
public class AppSettings
{
public bool IsServiceRecordNoticeMandatory { get; set; }
public bool IsPasswordSecurityActiv { get; set; }
public bool UseTwoFactorAuth { get; set; }
public bool IsEndDateVisible { get; set; }
public bool IsOnlyYearMonthVisible { get; set; }
public bool IsZeiterfassDateNormal { get; set; }
public bool IsZeiterfassungInStdMin { get; set; }
public int MaxDaysEditServiceRecordsAllowed { get; set; }
public int HilfeplanAuslaufAuswahl { get; set; }
public int AnzTageZeiterfassErfolgt { get; set; }
public int AnzTageArbeitszeiterfassungErfolgt { get; set; }
public int AnzTageUnterschriftErfolgt { get; set; }
public int ZeiterfassungsSchwellwert { get; set; }
public bool ShowAdvisedAttendedFlag { get; set; }
public bool ShowAllClients { get; set; }
public bool ShowExpiredSupportConcepts { get; set; }
public bool ShowOnlyMyClients { get; set; }
public bool ShowLargeCustomerNotice { get; set; }
public bool ShowOnlyMySupportConcepts { get; set; }
public string TimeRecordingMenuName { get; set; }
public bool ShowDistanceFields { get; set; }
public bool ShowSignatures { get; set; }
public bool ShowRtfTextfeld { get; set; }
public bool ShowCustomerDistanceFields { get; set; }
public bool ShowAdditionalService { get; set; }
public bool ShowRoundedDurationInEmployeeAnalysis { get; set; }
public bool SortServiceDescriptionAlphabetically { get; set; }
public bool ShowChat { get; set; }
public int DienstplanungStandardZeilenAnzahl { get; set; }
public bool ShowWorktime { get; set; }
public bool EnableArbeitszeiterfassung { get; set; }
public bool EnableAutomaticPauses { get; set; }
public bool EnableRestTimeWarning { get; set; }
public int MaxWorkTimeHoursBeforeWarning { get; set; }
public DateTime? StartStundenkonto { get; set; }
public static AppSettings CreateSettings()
{
AppSettings settings = new AppSettings();
var mandator = GetMandatorEntity();
bool isServiceRecordNoticeMandatory = true;
bool isPasswordSecurityActiv = false;
bool isEndDateVisible = true;
bool isOnlyYearMonthVisible = true;
bool isZeiterfassDateNormal = true;
bool isZeiterfassungInStdMin = true;
bool showServiceRecordsDistanceFields = false;
bool showSignatures = false;
bool showRtfTextfeld = false;
bool showCustomerDistanceFields = false;
bool showAdditionalService = false;
bool showRoundedDurationInEmployeeAnalysis = true;
int maxDaysEditServiceRecordsAllowed = 0;
int hilfeplanAuslaufAuswahl = 3;
int anzTageZeiterfassErfolgt = 0;
int zeiterfassungsSchwellwert = 80;
bool sortServiceDescriptionAlphabetically = false;
settings.ShowAdvisedAttendedFlag = false;
settings.DienstplanungStandardZeilenAnzahl = 1;
bool printerSettingsUseLandscape = false;
bool printerSettingsUseMargins = false;
bool printerSettingsUsePaperKind = false;
if (mandator != null)
{
string settingsString = mandator.Settings;
if (!String.IsNullOrEmpty(mandator.LastModules))
{
settingsString += ";" + mandator.LastModules;
}
string val = GetSettingValue(settingsString, "IsServiceRecordNoticeMandatory");
if (val != null && val.Equals("0"))
{
isServiceRecordNoticeMandatory = false;
}
val = GetSettingValue(settingsString, "IsPasswordSecurityActiv");
if (val != null && val.Equals("1"))
{
isPasswordSecurityActiv = true;
}
settings.UseTwoFactorAuth = false;
val = GetSettingValue(settingsString, "UseTwoFactorAuth");
if (val != null && val.Equals("1"))
{
settings.UseTwoFactorAuth = true;
}
val = GetSettingValue(settingsString, "IsEndDateVisible");
if (val != null && val.Equals("0"))
{
isEndDateVisible = false;
}
val = GetSettingValue(settingsString, "IsOnlyYearMonthVisible");
if (val != null && val.Equals("0"))
{
isOnlyYearMonthVisible = false;
}
val = GetSettingValue(settingsString, "IsZeiterfassDateNormal");
if (val != null && val.Equals("0"))
{
isZeiterfassDateNormal = false;
}
val = GetSettingValue(settingsString, "IsZeiterfassungInStdMin");
if (val != null && val.Equals("0"))
{
isZeiterfassungInStdMin = false;
}
val = GetSettingValue(settingsString, "MaxDaysEditServiceRecordsAllowed");
if(int.TryParse(val, out var result))
{
maxDaysEditServiceRecordsAllowed = result;
}
val = GetSettingValue(settingsString, "hilfeplanAuslaufAuswahl");
if (int.TryParse(val, out var resulthilf))
{
hilfeplanAuslaufAuswahl = resulthilf;
}
val = GetSettingValue(settingsString, "AnzTageZeiterfassErfolgt");
if (int.TryParse(val, out var resultanzeit))
{
anzTageZeiterfassErfolgt = resultanzeit;
}
val = GetSettingValue(settingsString, "AnzTageUnterschriftErfolgt");
if (int.TryParse(val, out var unterschrift))
{
settings.AnzTageUnterschriftErfolgt = unterschrift;
}
val = GetSettingValue(settingsString, "ZeiterfassungsSchwellwert");
if (int.TryParse(val, out var resultschwell))
{
zeiterfassungsSchwellwert = resultschwell;
}
val = GetSettingValue(settingsString, "DienstplanungStandardZeilenAnzahl");
if (int.TryParse(val, out var zeilenanzahl))
{
settings.DienstplanungStandardZeilenAnzahl = zeilenanzahl;
}
val = GetSettingValue(settingsString, "ShowDistanceFields");
if (val != null && val.Equals("1"))
{
showServiceRecordsDistanceFields = true;
}
val = GetSettingValue(settingsString, "ShowCustomerDistanceFields");
if (val != null && val.Equals("1"))
{
showCustomerDistanceFields = true;
}
val = GetSettingValue(settingsString, "ShowAdditionalService");
if (val != null && val.Equals("1"))
{
showAdditionalService = true;
}
val = GetSettingValue(settingsString, "ShowRoundedDurationInEmployeeAnalysis");
if (val != null && val.Equals("0"))
{
showRoundedDurationInEmployeeAnalysis = false;
}
val = GetSettingValue(settingsString, "ShowWorktime");
if (val != null && val.Equals("1"))
{
settings.ShowWorktime = true;
}
val = GetSettingValue(settingsString, SettingsKeys.EnableArbeitszeiterfassung);
if (val != null && val.Equals("1"))
{
settings.EnableArbeitszeiterfassung = true;
}
val = GetSettingValue(settingsString, SettingsKeys.EnableAutomaticPauses);
if (val != null && val.Equals("1"))
{
settings.EnableAutomaticPauses = true;
}
val = GetSettingValue(settingsString, SettingsKeys.EnableRestTimeWarning);
if (val != null && val.Equals("1"))
{
settings.EnableRestTimeWarning = true;
}
val = GetSettingValue(settingsString, SettingsKeys.MaxWorkTimeHoursBeforeWarning);
int hours;
if (Int32.TryParse(val, out hours))
{
settings.MaxWorkTimeHoursBeforeWarning = hours;
}
val = GetSettingValue(settingsString, "SortServiceDescriptionAlphabetically");
if (val != null && val.Equals("1"))
{
sortServiceDescriptionAlphabetically = true;
}
val = GetSettingValue(settingsString, "PrinterSettingsUseLandscape");
if (val != null && val.Equals("1"))
{
printerSettingsUseLandscape = true;
}
val = GetSettingValue(settingsString, "PrinterSettingsUseMargins");
if (val != null && val.Equals("1"))
{
printerSettingsUseMargins = true;
}
val = GetSettingValue(settingsString, "PrinterSettingsUsePaperKind");
if (val != null && val.Equals("1"))
{
printerSettingsUsePaperKind = true;
}
val = GetSettingValue(settingsString, "ShowSignature");
if (val != null && val.Equals("1"))
{
showSignatures = true;
}
val = GetSettingValue(settingsString, "ShowRtfTextfeld");
if (val != null && val.Equals("1"))
{
showRtfTextfeld = true;
}
val = GetSettingValue(settingsString, "ShowChat");
if (val != null && val.Equals("1"))
{
settings.ShowChat = true;
}
val = GetSettingValue(settingsString, "StartStundenkonto");
if (val != null && DateTime.TryParse(val, out var dt))
{
settings.StartStundenkonto = dt;
}
val = GetSettingValue(settingsString, SettingsKeys.AnzTageArbeitszeiterfassungErfolgt);
int tage;
if (Int32.TryParse(val, out tage))
{
settings.AnzTageArbeitszeiterfassungErfolgt = tage;
}
}
settings.IsServiceRecordNoticeMandatory = isServiceRecordNoticeMandatory;
settings.IsPasswordSecurityActiv = isPasswordSecurityActiv;
settings.IsEndDateVisible = isEndDateVisible;
settings.IsOnlyYearMonthVisible = isOnlyYearMonthVisible;
settings.IsZeiterfassDateNormal = isZeiterfassDateNormal;
settings.IsZeiterfassungInStdMin = isZeiterfassungInStdMin;
settings.MaxDaysEditServiceRecordsAllowed = maxDaysEditServiceRecordsAllowed;
settings.HilfeplanAuslaufAuswahl = hilfeplanAuslaufAuswahl;
settings.AnzTageZeiterfassErfolgt = anzTageZeiterfassErfolgt;
settings.ZeiterfassungsSchwellwert = zeiterfassungsSchwellwert;
settings.ShowDistanceFields = showServiceRecordsDistanceFields;
settings.ShowSignatures = showSignatures;
settings.ShowRtfTextfeld = showRtfTextfeld;
settings.ShowCustomerDistanceFields = showCustomerDistanceFields;
settings.ShowAdditionalService = showAdditionalService;
settings.ShowRoundedDurationInEmployeeAnalysis = showRoundedDurationInEmployeeAnalysis;
settings.SortServiceDescriptionAlphabetically = sortServiceDescriptionAlphabetically;
return settings;
}
public static Mandator GetMandatorEntity()
{
var manList = DAOFactory.GenericDAO.GetAll<Mandator>();
Mandator man;
if (manList == null || manList.Count == 0)
{
man = new Mandator
{
Oid = 1
};
DAOFactory.GenericDAO.Insert(man);
}
else
{
man = manList[0];
}
return man;
}
private static string GetSettingValue(string settings, string key)
{
if (!String.IsNullOrEmpty(settings))
{
if (settings.IndexOf(";") == -1 && settings.IndexOf("=") == -1)
{
return settings;
}
string[] keyValuePairs = settings.Split(';');
foreach (string pair in keyValuePairs)
{
string[] keyValuePair = pair.Split('=');
if (keyValuePair.Length == 2)
{
if (keyValuePair[0] == key)
{
return keyValuePair[1];
}
}
}
}
return null;
}
}
}