Files

409 lines
14 KiB
C#
Raw Permalink Normal View History

2016-06-27 01:45:38 +02:00
using System;
using System.Collections.Generic;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.DCEntityMapper;
2016-06-27 01:45:38 +02:00
using BS.Shared;
using BS.Shared.Core;
2016-06-27 01:45:38 +02:00
namespace BeWo.Service.Configuration
{
public class AppSettings
{
public bool IsServiceRecordNoticeMandatory { get; set; }
public bool IsPasswordSecurityActiv { get; set; }
2021-02-21 19:01:51 +01:00
public bool UseTwoFactorAuth { get; set; }
2016-06-27 01:45:38 +02:00
public bool IsEndDateVisible { get; set; }
public bool IsOnlyYearMonthVisible { get; set; }
public bool IsZeiterfassDateNormal { get; set; }
public bool IsZeiterfassungInStdMin { get; set; }
2016-06-27 01:45:38 +02:00
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; }
2016-06-27 01:45:38 +02:00
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; }
2017-02-09 10:05:55 +01:00
public bool ShowSignatures { get; set; }
public bool ShowRtfTextfeld { get; set; }
2017-02-09 10:05:55 +01:00
public bool ShowCustomerDistanceFields { get; set; }
2016-06-27 01:45:38 +02:00
public bool ShowAdditionalService { get; set; }
public bool ShowRoundedDurationInEmployeeAnalysis { get; set; }
public bool SortServiceDescriptionAlphabetically { get; set; }
2020-04-08 14:25:01 +02:00
public bool ShowChat { get; set; }
public int DienstplanungStandardZeilenAnzahl { get; set; }
2020-04-08 14:25:01 +02:00
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 ServiceRecordTimeInterval LastSelectedServiceRecordTimeInterval { get; set; } = ServiceRecordTimeInterval.All;
public int LastSelectedServiceRecordTimeIntervalDays { get; set; } = 7;
public DateTime LastSelectedServiceRecordMonth { get; set; } = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
public static AppSettings CreateSettings()
2016-06-27 01:45:38 +02:00
{
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;
2016-06-27 01:45:38 +02:00
bool showServiceRecordsDistanceFields = false;
2017-02-09 10:05:55 +01:00
bool showSignatures = false;
bool showRtfTextfeld = false;
2016-06-27 01:45:38 +02:00
bool showCustomerDistanceFields = false;
bool showAdditionalService = false;
bool showRoundedDurationInEmployeeAnalysis = true;
int maxDaysEditServiceRecordsAllowed = 0;
int hilfeplanAuslaufAuswahl = 3;
int anzTageZeiterfassErfolgt = 0;
int zeiterfassungsSchwellwert = 80;
bool sortServiceDescriptionAlphabetically = false;
2016-06-27 01:45:38 +02:00
settings.ShowAdvisedAttendedFlag = false;
settings.DienstplanungStandardZeilenAnzahl = 1;
2022-06-20 14:13:28 +02:00
2016-06-27 01:45:38 +02:00
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");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("0"))
{
isServiceRecordNoticeMandatory = false;
}
val = GetSettingValue(settingsString, "IsPasswordSecurityActiv");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("1"))
{
isPasswordSecurityActiv = true;
}
2021-02-21 19:01:51 +01:00
settings.UseTwoFactorAuth = false;
val = GetSettingValue(settingsString, "UseTwoFactorAuth");
2021-02-21 19:01:51 +01:00
if (val != null && val.Equals("1"))
{
settings.UseTwoFactorAuth = true;
}
val = GetSettingValue(settingsString, "IsEndDateVisible");
2016-06-27 01:45:38 +02:00
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))
2016-06-27 01:45:38 +02:00
{
maxDaysEditServiceRecordsAllowed = result;
}
val = GetSettingValue(settingsString, "hilfeplanAuslaufAuswahl");
if (int.TryParse(val, out var resulthilf))
2016-06-27 01:45:38 +02:00
{
hilfeplanAuslaufAuswahl = resulthilf;
}
val = GetSettingValue(settingsString, "AnzTageZeiterfassErfolgt");
if (int.TryParse(val, out var resultanzeit))
2016-06-27 01:45:38 +02:00
{
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;
}
2016-06-27 01:45:38 +02:00
val = GetSettingValue(settingsString, "ShowDistanceFields");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("1"))
{
showServiceRecordsDistanceFields = true;
}
val = GetSettingValue(settingsString, "ShowCustomerDistanceFields");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("1"))
{
showCustomerDistanceFields = true;
}
val = GetSettingValue(settingsString, "ShowAdditionalService");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("1"))
{
showAdditionalService = true;
}
val = GetSettingValue(settingsString, "ShowRoundedDurationInEmployeeAnalysis");
2016-06-27 01:45:38 +02:00
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");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("1"))
{
sortServiceDescriptionAlphabetically = true;
}
val = GetSettingValue(settingsString, "PrinterSettingsUseLandscape");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("1"))
{
printerSettingsUseLandscape = true;
}
val = GetSettingValue(settingsString, "PrinterSettingsUseMargins");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("1"))
{
printerSettingsUseMargins = true;
}
val = GetSettingValue(settingsString, "PrinterSettingsUsePaperKind");
2016-06-27 01:45:38 +02:00
if (val != null && val.Equals("1"))
{
printerSettingsUsePaperKind = true;
}
val = GetSettingValue(settingsString, "ShowSignature");
2017-02-09 10:05:55 +01:00
if (val != null && val.Equals("1"))
{
showSignatures = true;
}
val = GetSettingValue(settingsString, "ShowRtfTextfeld");
if (val != null && val.Equals("1"))
{
showRtfTextfeld = true;
}
val = GetSettingValue(settingsString, "ShowChat");
2020-04-08 14:25:01 +02:00
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;
}
}
2016-06-27 01:45:38 +02:00
settings.IsServiceRecordNoticeMandatory = isServiceRecordNoticeMandatory;
settings.IsPasswordSecurityActiv = isPasswordSecurityActiv;
settings.IsEndDateVisible = isEndDateVisible;
settings.IsOnlyYearMonthVisible = isOnlyYearMonthVisible;
settings.IsZeiterfassDateNormal = isZeiterfassDateNormal;
settings.IsZeiterfassungInStdMin = isZeiterfassungInStdMin;
2016-06-27 01:45:38 +02:00
settings.MaxDaysEditServiceRecordsAllowed = maxDaysEditServiceRecordsAllowed;
settings.HilfeplanAuslaufAuswahl = hilfeplanAuslaufAuswahl;
settings.AnzTageZeiterfassErfolgt = anzTageZeiterfassErfolgt;
settings.ZeiterfassungsSchwellwert = zeiterfassungsSchwellwert;
settings.ShowDistanceFields = showServiceRecordsDistanceFields;
2017-02-09 10:05:55 +01:00
settings.ShowSignatures = showSignatures;
settings.ShowRtfTextfeld = showRtfTextfeld;
2016-06-27 01:45:38 +02:00
settings.ShowCustomerDistanceFields = showCustomerDistanceFields;
settings.ShowAdditionalService = showAdditionalService;
settings.ShowRoundedDurationInEmployeeAnalysis = showRoundedDurationInEmployeeAnalysis;
settings.SortServiceDescriptionAlphabetically = sortServiceDescriptionAlphabetically;
return settings;
}
public static AppSettings GetUserAppSettings()
{
AppSettings settings = new AppSettings();
var user = UserRightHelper.GetLoggedInUser();
if (user != null)
{
var settingsList = MapperFactory.SettingsDC_Settings.MapToNewDCs(user.SettingList);
var val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeInterval, settingsList);
if (int.TryParse(val, out var result))
{
settings.LastSelectedServiceRecordTimeInterval = (ServiceRecordTimeInterval)result;
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, settingsList);
if (val != null)
{
settings.LastSelectedServiceRecordTimeIntervalDays = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, settingsList));
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, settingsList);
if (val != null)
{
settings.LastSelectedServiceRecordMonth = Convert.ToDateTime(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, settingsList));
}
}
2016-06-27 01:45:38 +02:00
return settings;
2016-06-27 01:45:38 +02:00
}
public static Mandator GetMandatorEntity()
2016-06-27 01:45:38 +02:00
{
var manList = DAOFactory.GenericDAO.GetAll<Mandator>();
Mandator man;
2016-06-27 01:45:38 +02:00
if (manList == null || manList.Count == 0)
{
man = new Mandator
{
Oid = 1
};
2016-06-27 01:45:38 +02:00
DAOFactory.GenericDAO.Insert(man);
2016-06-27 01:45:38 +02:00
}
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;
}
}
}