1329 lines
49 KiB
C#
1329 lines
49 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Threading;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Markup;
|
|
using System.Windows.Media;
|
|
using System.Windows.Threading;
|
|
|
|
using BeWo.Core;
|
|
using BeWo.Core.Config;
|
|
using BeWo.ServiceProxy;
|
|
using BeWo.View;
|
|
using BeWo.View.Detail;
|
|
using BeWo.View.Navigation;
|
|
using BeWo.View.Navigation.Filter;
|
|
|
|
using BS.Shared;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.DataContracts.Compact;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared.Core;
|
|
|
|
using ChatController.HauptKlassen;
|
|
using DevExpress.Xpf.Core;
|
|
using DevExpress.Xpf.Grid;
|
|
using DevExpress.XtraScheduler;
|
|
|
|
namespace BeWo
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for App.xaml
|
|
/// </summary>
|
|
public partial class BeWoApp : INotifyPropertyChanged
|
|
{
|
|
private static DebugMessageLogView _DebugMessageLogView;
|
|
|
|
|
|
private static FrameworkElement _lockedContent;
|
|
|
|
public static LoginControl LoginControl;
|
|
|
|
public static MainControl MainControl;
|
|
public static string ShortVersion = "3.21";
|
|
public static string Version = "Version 3.21.4";
|
|
|
|
public static int RenderTier = 0;
|
|
|
|
internal static string IpAddress = string.Empty;
|
|
|
|
internal static string Tenant = string.Empty;
|
|
|
|
internal static string ServerName = string.Empty;
|
|
|
|
internal static string UserName = string.Empty;
|
|
|
|
internal static string UserPassword = string.Empty;
|
|
|
|
internal static string TwoFactorPin = string.Empty;
|
|
|
|
internal static string chatServerURL = string.Empty;
|
|
|
|
private static AppSettings _AppSettings;
|
|
|
|
private static CompactEmployeeDC _CompactLoggedOnEmployee;
|
|
private static EmployeeDC _LoggedOnEmployee;
|
|
|
|
private static UserDC _LoggedOnUser;
|
|
|
|
private static MandatorDC _Mandator;
|
|
private static string _ServerAddress;
|
|
private static int _LockUITime = 30;
|
|
private static List<Window> OpenDevExpressEditForms = new List<Window>();
|
|
|
|
private static DocumentWatcher _DocumentWatcher;
|
|
|
|
internal static PasswortSecurityStrength PasswortStrength;
|
|
|
|
public static BeWoApp CurrentBeWo => Current as BeWoApp;
|
|
|
|
public static Dictionary<string, string> ICD10Diagnosis { get; set; }
|
|
|
|
public static EmployeeDC LoggedOnEmployee
|
|
{
|
|
get => _LoggedOnEmployee;
|
|
|
|
set => _LoggedOnEmployee = value;
|
|
}
|
|
|
|
public static long? LoggedOnEmployeeOid => _LoggedOnEmployee?.EmployeeOid;
|
|
|
|
public static CompactEmployeeDC CompactLoggedOnEmployee
|
|
{
|
|
get => _CompactLoggedOnEmployee;
|
|
|
|
set => _CompactLoggedOnEmployee = value;
|
|
}
|
|
|
|
public ObservableCollection<UserRightType> LoggedOnUsersRights => LoggedOnUser?.GetGrantedRights().ToObservableCollection();
|
|
|
|
public DocumentWatcher DocumentWatcher => _DocumentWatcher ?? (_DocumentWatcher = new DocumentWatcher());
|
|
|
|
public static string ServerAddress
|
|
{
|
|
get => _ServerAddress;
|
|
|
|
set
|
|
{
|
|
//if (_ServerAddress != null && _ServerAddress.Equals(value))
|
|
// return;
|
|
_ServerAddress = value;
|
|
ServiceFacade.UpdateServerAddresses(SiteOfOrigin.ToString());
|
|
}
|
|
}
|
|
|
|
public static AppSettings AppSettings
|
|
{
|
|
get
|
|
{
|
|
if (_AppSettings == null)
|
|
{
|
|
RestoreUserAppSettings();
|
|
}
|
|
|
|
return _AppSettings;
|
|
}
|
|
}
|
|
|
|
internal static UserDC LoggedOnUser
|
|
{
|
|
get => _LoggedOnUser;
|
|
|
|
set
|
|
{
|
|
_LoggedOnUser = value;
|
|
if (_LoggedOnUser != null)
|
|
{
|
|
var settings = _LoggedOnUser.Settings;
|
|
|
|
ServiceFacade.DoEmployeeServiceAsync(s => s.LoadEmployee(value.Employee.EmployeeOid),
|
|
r =>
|
|
{
|
|
_LoggedOnEmployee = r;
|
|
|
|
ServiceFacade.DoEmployeeServiceAsync(s => s.LoadCompactEmployee(value.Employee.EmployeeOid), r2 => { _CompactLoggedOnEmployee = r2; });
|
|
|
|
MainControl?.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action) (() => MainControl.InitOffeneTermine()));
|
|
});
|
|
}
|
|
|
|
CurrentBeWo.FirePropertyChanged("LoggedOnUsersRights");
|
|
}
|
|
}
|
|
|
|
internal static MandatorDC Mandator
|
|
{
|
|
get => _Mandator;
|
|
|
|
set
|
|
{
|
|
_Mandator = value;
|
|
|
|
bool showDatevFields = false;
|
|
bool isServiceRecordNoticeMandatory = true;
|
|
bool isPasswordSecurityActiv = false;
|
|
bool showServiceRecordsDistanceFields = false;
|
|
bool showHilfeplanBezeichnung = false;
|
|
bool showArbeitszeiten = false;
|
|
bool showCustomerDistanceFields = false;
|
|
bool showAdditionalService = false;
|
|
bool showRoundedDurationInEmployeeAnalysis = true;
|
|
bool showTeamNews = false;
|
|
bool showMarker = false;
|
|
bool showAnnualReport = false;
|
|
int maxDaysEditServiceRecordsAllowed = 0;
|
|
int hilfeplanAuslaufAuswahl = 3;
|
|
int anzTageZeiterfassErfolgt = 0;
|
|
int zeiterfassungsSchwellwert = 80;
|
|
bool printerSettingsUseLandscape = false;
|
|
bool printerSettingsUseMargins = false;
|
|
bool printerSettingsUsePaperKind = false;
|
|
var hideServiceRecordInsertedByAndInsertedOn = false;
|
|
bool isEndDateVisible = false;
|
|
bool isOnlyYearMonthVisible = false;
|
|
bool isZeiterfassDateNormal = true;
|
|
int lastSelectedStundenkontoIntervall = 3;
|
|
bool showSignatures = false;
|
|
bool showBetrag = false;
|
|
bool showRtfTextfield = false;
|
|
bool showPivotGrid = false;
|
|
bool showUrlaubsplanung = false;
|
|
bool dontShowSpitzabrechnung = false;
|
|
bool showDienstplanung = false;
|
|
var showEmployeeSignature = false;
|
|
var showMultipleResourceColors = false;
|
|
var showInfoButtonInCalender = false;
|
|
|
|
|
|
|
|
|
|
AppSettings.ShowAdvisedAttendedFlag = false;
|
|
var timeRecordingMenuName = string.Empty;
|
|
|
|
if (_Mandator != null)
|
|
{
|
|
var val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowMedication);
|
|
AppSettings.IsMedicationAllowed = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowScheduler);
|
|
AppSettings.IsSchedulerAllowed = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowWohnheime);
|
|
AppSettings.IsWohnheimAllowed = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowChat);
|
|
AppSettings.ShowOwnChat = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowOwnChatSettings);
|
|
AppSettings.ShowOwnChatSettings = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.SetStartTimeToEndTimeAfterSave);
|
|
AppSettings.SetStartTimeToEndTimeAfterSave = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.IsServiceRecordNoticeMandatory);
|
|
if(val != null && val.Equals("0"))
|
|
{
|
|
isServiceRecordNoticeMandatory = false;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.IsPasswordSecurityActiv);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
isPasswordSecurityActiv = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.IsEndDateVisible);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
isEndDateVisible = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.IsOnlyYearMonthVisible);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
isOnlyYearMonthVisible = true;
|
|
}
|
|
|
|
AppSettings.EinheitZeiterfassung = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.EinheitZeiterfassung);
|
|
if (String.IsNullOrEmpty(AppSettings.EinheitZeiterfassung))
|
|
{
|
|
AppSettings.EinheitZeiterfassung = "0";
|
|
}
|
|
if (AppSettings.EinheitZeiterfassung == "0")
|
|
{
|
|
AppSettings.LetzteZeiterfassungsDauer = ZeiterfassungsDauer.Minuten;
|
|
}
|
|
else if (AppSettings.EinheitZeiterfassung == "1")
|
|
{
|
|
AppSettings.LetzteZeiterfassungsDauer = ZeiterfassungsDauer.Stunden;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.IsZeiterfassDateNormal);
|
|
if(val != null && val.Equals("0"))
|
|
{
|
|
isZeiterfassDateNormal = false;
|
|
}
|
|
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.MaxDaysEditServiceRecordsAllowed);
|
|
int result;
|
|
if(Int32.TryParse(val, out result))
|
|
{
|
|
maxDaysEditServiceRecordsAllowed = result;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.HilfeplanAuslaufAuswahl);
|
|
int resultplan;
|
|
if(Int32.TryParse(val, out resultplan))
|
|
{
|
|
hilfeplanAuslaufAuswahl = resultplan;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.LastSelectedStundenkontoIntervall);
|
|
int resultinterval;
|
|
if(Int32.TryParse(val, out resultinterval))
|
|
{
|
|
lastSelectedStundenkontoIntervall = resultinterval;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AnzTageZeiterfassErfolgt);
|
|
int resultzeitplan;
|
|
if(Int32.TryParse(val, out resultzeitplan))
|
|
{
|
|
anzTageZeiterfassErfolgt = resultzeitplan;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ZeiterfassungsSchwellwert);
|
|
int resultschwell;
|
|
if(Int32.TryParse(val, out resultschwell))
|
|
{
|
|
zeiterfassungsSchwellwert = resultschwell;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowDistanceFields);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showServiceRecordsDistanceFields = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowBetrag);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showBetrag = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowHilfeplanBezeichnung);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showHilfeplanBezeichnung = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowArbeitszeiten);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showArbeitszeiten = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowRessources);
|
|
AppSettings.ShowRessources = val != null && val.Equals("1");
|
|
|
|
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowTeamNews);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showTeamNews = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowPivotGrid);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showPivotGrid = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowUrlaubsplanung);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showUrlaubsplanung = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.DontShowSpitzabrechnung);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
dontShowSpitzabrechnung = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowDienstplanung);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showDienstplanung = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowWorktime);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
AppSettings.ShowWorktime = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.EnableArbeitszeiterfassung);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
AppSettings.EnableArbeitszeiterfassung = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.EnableAutomaticPauses);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
AppSettings.EnableAutomaticPauses = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.EnableRestTimeWarning);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
AppSettings.EnableRestTimeWarning = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.MaxWorkTimeHoursBeforeWarning);
|
|
int hours;
|
|
if (Int32.TryParse(val, out hours))
|
|
{
|
|
AppSettings.MaxWorkTimeHoursBeforeWarning = hours;
|
|
}
|
|
|
|
var anzahl = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.DienstplanungStandardZeilenAnzahl);
|
|
if (anzahl != null)
|
|
{
|
|
int anzahlInt;
|
|
if (Int32.TryParse(anzahl, out anzahlInt))
|
|
{
|
|
AppSettings.DienstplanungStandardZeilenAnzahl = anzahlInt;
|
|
}
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowMarker);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showMarker = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowAnnualReport);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showAnnualReport = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowCustomerDistanceFields);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showCustomerDistanceFields = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowAdditionalService);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showAdditionalService = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowRoundedDurationInEmployeeAnalysis);
|
|
if(val != null && val.Equals("0"))
|
|
{
|
|
showRoundedDurationInEmployeeAnalysis = false;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowDatevFields);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showDatevFields = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.PrinterSettingsUseLandscape);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
printerSettingsUseLandscape = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.PrinterSettingsUseMargins);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
printerSettingsUseMargins = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.PrinterSettingsUsePaperKind);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
printerSettingsUsePaperKind = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.HideServiceRecordInsertedByAndInsertedOn);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
hideServiceRecordInsertedByAndInsertedOn = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowSignature);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showSignatures = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowRtfTextfield);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showRtfTextfield = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowEmployeeSignature);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showEmployeeSignature = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowMultipleResourceColors);
|
|
if(val != null && val.Equals("1"))
|
|
{
|
|
showMultipleResourceColors = true;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowKlientenBetreuungszeiten);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
AppSettings.ShowKlientenBetreuungszeiten = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.FilterGroupServiceCategories);
|
|
if (val != null && val.Equals("0"))
|
|
{
|
|
AppSettings.FilterGroupServiceCategories = false;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowInfoButtonInCalender);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
AppSettings.ShowInfoButtonInCalender = true;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowStorno);
|
|
AppSettings.AllowStorno = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.UseDistanceApi);
|
|
AppSettings.UseDistanceApi = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowHilfeplanStatistikReport);
|
|
AppSettings.ShowHilfeplanStatistikReport = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowAI);
|
|
AppSettings.ShowAI = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowAIInternal);
|
|
AppSettings.ShowAIInternal = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.MoKSessionTimeout);
|
|
if(int.TryParse(val, out var sessionTimeout))
|
|
{
|
|
AppSettings.MoKSessionTimeout = sessionTimeout;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ServiceRecordAllowChangeHours);
|
|
if (val != null)
|
|
{
|
|
_AppSettings.ServiceRecordAllowChangeHours = Convert.ToInt32(val);
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowGkvAbrechnung);
|
|
AppSettings.AllowGkvAbrechnung = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowImportAbschlagszahlungen);
|
|
AppSettings.ShowImportAbschlagszahlungen = val != null && val.Equals("1");
|
|
|
|
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowPersehImport);
|
|
AppSettings.ShowPersehImport = val != null && val.Equals("1");
|
|
|
|
|
|
|
|
switch (_Mandator.BeWoClientType)
|
|
{
|
|
case 1:
|
|
//Die Kette
|
|
showDatevFields = true;
|
|
AppSettings.ShowAdvisedAttendedFlag = true;
|
|
break;
|
|
case 2:
|
|
//Datev
|
|
showDatevFields = true;
|
|
break;
|
|
case 3:
|
|
////Köln Ring
|
|
showDatevFields = true;
|
|
timeRecordingMenuName = "Dokumentation";
|
|
break;
|
|
case 4:
|
|
//Betreuwo
|
|
break;
|
|
|
|
case 5:
|
|
//Kontakt und Krisenhilfe
|
|
AppSettings.ShowLargeCustomerNotice = true;
|
|
break;
|
|
case 6:
|
|
// Nur Jahresbericht
|
|
break;
|
|
case 7:
|
|
//IBP
|
|
showDatevFields = true;
|
|
break;
|
|
case 8:
|
|
//LH Würzburg
|
|
break;
|
|
case 9:
|
|
//Caritas Frankfurt+Aids Hilfe Gießen + Alle mit Korridor (Kostenträger Hessen)
|
|
break;
|
|
case 10:
|
|
//Integra
|
|
showDatevFields = true;
|
|
break;
|
|
case 11:
|
|
//Hannover
|
|
showDatevFields = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
#if DEBUG
|
|
showSignatures = true;
|
|
showCustomerDistanceFields = true;
|
|
showServiceRecordsDistanceFields = true;
|
|
showBetrag = true;
|
|
showPivotGrid = true;
|
|
showArbeitszeiten = true;
|
|
//showMarker = true;
|
|
showUrlaubsplanung = true;
|
|
showDienstplanung = true;
|
|
showHilfeplanBezeichnung = true;
|
|
AppSettings.AllowStorno = true;
|
|
AppSettings.ShowAI = true;
|
|
AppSettings.ShowAIInternal = true;
|
|
AppSettings.ShowWorktime = true;
|
|
//showInfoButtonInCalender = true;
|
|
#endif
|
|
|
|
AppSettings.ShowDatevFields = showDatevFields;
|
|
AppSettings.IsServiceRecordNoticeMandatory = isServiceRecordNoticeMandatory;
|
|
AppSettings.IsPasswordSecurityActiv = isPasswordSecurityActiv;
|
|
AppSettings.IsEndDateVisible = isEndDateVisible;
|
|
AppSettings.IsOnlyYearMonthVisible = isOnlyYearMonthVisible;
|
|
AppSettings.IsZeiterfassDateNormal = isZeiterfassDateNormal;
|
|
AppSettings.MaxDaysEditServiceRecordsAllowed = maxDaysEditServiceRecordsAllowed;
|
|
AppSettings.HilfeplanAuslaufAuswahl = hilfeplanAuslaufAuswahl;
|
|
AppSettings.LastSelectedStundenkontoIntervall = lastSelectedStundenkontoIntervall;
|
|
AppSettings.AnzTageZeiterfassErfolgt = anzTageZeiterfassErfolgt;
|
|
AppSettings.ZeiterfassungsSchwellwert = zeiterfassungsSchwellwert;
|
|
AppSettings.TimeRecordingMenuName = timeRecordingMenuName;
|
|
AppSettings.ShowDistanceFields = showServiceRecordsDistanceFields;
|
|
AppSettings.ShowBetrag = showBetrag;
|
|
AppSettings.ShowHilfeplanBezeichnung = showHilfeplanBezeichnung;
|
|
AppSettings.ShowArbeitszeiten = showArbeitszeiten;
|
|
AppSettings.ShowSignatures = showSignatures;
|
|
AppSettings.ShowRtfTextfield = showRtfTextfield;
|
|
AppSettings.ShowCustomerDistanceFields = showCustomerDistanceFields;
|
|
AppSettings.ShowAdditionalService = showAdditionalService;
|
|
AppSettings.ShowRoundedDurationInEmployeeAnalysis = showRoundedDurationInEmployeeAnalysis;
|
|
AppSettings.HideServiceRecordInsertedByAndInsertedOn = hideServiceRecordInsertedByAndInsertedOn;
|
|
AppSettings.ShowTeamNews = showTeamNews;
|
|
AppSettings.ShowMarker = showMarker;
|
|
AppSettings.ShowAnnualReport = showAnnualReport;
|
|
AppSettings.PrinterSettingsUseLandscape = printerSettingsUseLandscape;
|
|
AppSettings.PrinterSettingsUseMargins = printerSettingsUseMargins;
|
|
AppSettings.PrinterSettingsUsePaperKind = printerSettingsUsePaperKind;
|
|
AppSettings.ShowPivotGrid = showPivotGrid;
|
|
AppSettings.ShowUrlaubsplanung = showUrlaubsplanung;
|
|
AppSettings.DontShowSpitzabrechnung = dontShowSpitzabrechnung;
|
|
AppSettings.ShowDienstplanung = showDienstplanung;
|
|
AppSettings.ShowEmployeeSignature = showEmployeeSignature;
|
|
AppSettings.ShowMultipleResourceColors = showMultipleResourceColors;
|
|
AppSettings.ShowInfoButtonInCalender = showInfoButtonInCalender;
|
|
|
|
BS.Shared.Settings.ApplicationSettings.SupportConceptExpirationLimitInMonths = AppSettings.HilfeplanAuslaufAuswahl;
|
|
}
|
|
}
|
|
|
|
internal static Uri SiteOfOrigin
|
|
{
|
|
get
|
|
{
|
|
String url = "";
|
|
#if DEBUG
|
|
url = String.Format("http://localhost:3777/Host");
|
|
//return new Uri("https://app4.bewoplaner.de/service");
|
|
//url = String.Format("app1.bewoplaner.de/service");
|
|
#endif
|
|
|
|
if (!String.IsNullOrEmpty(ServerAddress) && String.IsNullOrEmpty(url))
|
|
{
|
|
url = ServerAddress.ToLower();
|
|
}
|
|
|
|
|
|
if (url.IndexOf("localhost") < 0)
|
|
{
|
|
int i;
|
|
|
|
|
|
if (Int32.TryParse(url, out i))
|
|
url = "app" + url;
|
|
|
|
if (url.IndexOf('.') < 0)
|
|
{
|
|
url += ".bewoplaner.de";
|
|
}
|
|
|
|
//if (url.IndexOf("/service45") < 0)
|
|
//{
|
|
// url += "/service45";
|
|
//}
|
|
if (url.IndexOf("/service") < 0)
|
|
{
|
|
url += "/service";
|
|
}
|
|
|
|
return new Uri(String.Format("https://{0}", url));
|
|
}
|
|
return new Uri(url);
|
|
}
|
|
}
|
|
|
|
public static int LockUITime
|
|
{
|
|
get
|
|
{
|
|
var lockTime = _Mandator.Settings.SplitToKeyValuePairList(";", "=").FirstOrDefault(f => f.Key.Equals(SettingsKeys.TimeUntilUILock)).Value;
|
|
|
|
if(_LoggedOnUser != null && lockTime != null)
|
|
{
|
|
return Convert.ToInt32(lockTime);
|
|
}
|
|
|
|
return _LockUITime;
|
|
}
|
|
|
|
set
|
|
{
|
|
_LockUITime = value;
|
|
|
|
if (_LoggedOnUser == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
AutoLockUI.LockUITime = value;
|
|
AutoLockUI.StopTimer();
|
|
AutoLockUI.StartAutoLockUIOption();
|
|
}
|
|
}
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
public static string GetAndCreateUserAppDataPath()
|
|
{
|
|
try
|
|
{
|
|
string localAppData = Environment.GetFolderPath(
|
|
Environment.SpecialFolder.LocalApplicationData);
|
|
|
|
string companyFilePathBS
|
|
= Path.Combine(localAppData, "beyondSoft");
|
|
string bewoFilePathBS
|
|
= Path.Combine(companyFilePathBS, "BeWoPlaner");
|
|
|
|
string companyFilePathOS
|
|
= Path.Combine(localAppData, "ownSoft");
|
|
|
|
if (!Directory.Exists(companyFilePathOS))
|
|
Directory.CreateDirectory(companyFilePathOS);
|
|
|
|
|
|
string bewoFilePathOS
|
|
= Path.Combine(companyFilePathOS, "BeWoPlaner");
|
|
|
|
if (!Directory.Exists(bewoFilePathOS))
|
|
Directory.CreateDirectory(bewoFilePathOS);
|
|
|
|
//return bewoFilePathBS; // raus
|
|
|
|
CheckOldBSPathAndCopyFiles(bewoFilePathBS, bewoFilePathOS);
|
|
|
|
|
|
return bewoFilePathOS;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(
|
|
"Fehler beim Anlegen des Anwendungsordners. Sie besitzen nicht die erforderlichen Rechte, bitte wenden Sie sich an Ihren Systemadministrator.\n" +
|
|
ex.Message, "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
}
|
|
return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
|
}
|
|
|
|
private static void CheckOldBSPathAndCopyFiles(string companyFilePathBS, string companyFilePathOS)
|
|
{
|
|
if (Directory.Exists(companyFilePathBS))
|
|
{
|
|
var bsFiles = Directory.GetFiles(companyFilePathBS);
|
|
|
|
if (bsFiles.Length > 0)
|
|
{
|
|
var osFiles = Directory.GetFiles(companyFilePathOS);
|
|
if (osFiles.Length == 0)
|
|
{
|
|
foreach (var file in bsFiles)
|
|
{
|
|
File.Move(file, Path.Combine(companyFilePathOS, Path.GetFileName(file)));
|
|
}
|
|
|
|
Directory.Delete(companyFilePathBS);
|
|
}
|
|
|
|
}
|
|
|
|
//var p = Directory.GetParent(companyFilePathBS);
|
|
//Directory.Delete(Directory.GetParent(companyFilePathBS).FullName);
|
|
}
|
|
}
|
|
|
|
internal static bool HasLoggedOnUserRight(UserRightType[] pRight)
|
|
{
|
|
if (LoggedOnUser != null)
|
|
{
|
|
return pRight == null || (pRight.Length == 1 && pRight[0] == UserRightType.None) || LoggedOnUser.GetGrantedRights().Exists(
|
|
right =>
|
|
{
|
|
var rightAsString = pRight.ToString();
|
|
var vals = rightAsString.Split(",");
|
|
|
|
foreach (var urt in pRight)
|
|
{
|
|
if (urt == right)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
});
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
internal static void SaveAppSettings()
|
|
{
|
|
if (_AppSettings != null && _LoggedOnUser != null && _AppSettings.IsDirty)
|
|
{
|
|
_AppSettings.IsDirty = false;
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.WindowStateType, ((int) _AppSettings.WindowState).ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeInterval, ((int) _AppSettings.LastSelectedServiceRecordTimeInterval).ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.CustomerFilterInZeiterfassung, ((int)_AppSettings.CustomerFilterInZeiterfassung).ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.CustomerFilterSupportConcepts, ((int)_AppSettings.CustomerFilterSupportConcepts).ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.CustomerFilterCustomers, ((int)_AppSettings.CustomerFilterCustomers).ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.ShowExpiredSupportConcepts, _AppSettings.ShowExpiredSupportConcepts ? "1" : "0", _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.ShowServiceRecordGridControl, _AppSettings.ShowServiceRecordGridControl ? "1" : "0", _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.StartupPanelMaximized, _AppSettings.StartupPanelMaximized, _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.HideServiceRecordInsertedByAndInsertedOn, _AppSettings.HideServiceRecordInsertedByAndInsertedOn ? "1" : "0", _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.DocumentationFontSize, _AppSettings.DocumentationFontSize.ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.ZeigeNurMeineTermine, _AppSettings.ZeigeNurMeineTermine ? "1" : "0", _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, _AppSettings.LastSelectedServiceRecordTimeIntervalDays.ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, _AppSettings.LastSelectedServiceRecordMonth.ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastKassenSortOrder, _AppSettings.LastKassenSortOrder.ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LetzteZeiterfassungsDauer, ((int)_AppSettings.LetzteZeiterfassungsDauer).ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.SchedulerViewType, ((int) _AppSettings.SchedulerViewType).ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.SchedulerTimelineViewDayCount, (_AppSettings.SchedulerTimelineViewDayCount).ToString(), _LoggedOnUser.Settings);
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.SchedulerDayViewDayCount, _AppSettings.SchedulerDayViewDayCount.ToString(), _LoggedOnUser.Settings);
|
|
|
|
string val = string.Empty;
|
|
if (_AppSettings.StartupPanelOrder != null)
|
|
{
|
|
foreach (string item in _AppSettings.StartupPanelOrder)
|
|
{
|
|
if (val.Length > 0)
|
|
{
|
|
val += "|";
|
|
}
|
|
|
|
val += item;
|
|
}
|
|
}
|
|
|
|
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.StartupPanelOrder, val, _LoggedOnUser.Settings);
|
|
|
|
ServiceFacade.DoUserServiceAsync(s => s.UpdateUserSettings(_LoggedOnUser.UserOid.Value, _LoggedOnUser.Settings), ReloadSettings, false);
|
|
}
|
|
}
|
|
|
|
internal static void ShowError(string message, Exception ex, bool showDetails)
|
|
{
|
|
if (MainControl != null)
|
|
{
|
|
MainControl.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action) (() =>
|
|
{
|
|
UserControl exControl = null;
|
|
if (showDetails && BeWoApp.LoggedOnUser != null && BeWoApp.LoggedOnUser.HasRight(BS.Shared.UserRightType.Support_View))
|
|
{
|
|
exControl = new ExceptionMessageBoxWithSupportMail(ex);
|
|
}
|
|
else
|
|
{
|
|
exControl = new ExceptionMessageBox(message, ex, showDetails);
|
|
}
|
|
|
|
MainControl.ShowControlAsModalPopup(exControl);
|
|
}));
|
|
}
|
|
else if (LoginControl != null)
|
|
{
|
|
LoginControl.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action) (() => LoginControl.ShowControlAsModalPopUp(new ExceptionMessageBox(message, ex, showDetails))));
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show(message + "\n\n" + ex);
|
|
}
|
|
}
|
|
|
|
internal void FirePropertyChanged(string pPropertyName)
|
|
{
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(pPropertyName));
|
|
}
|
|
|
|
public static void InitAutoUILocking()
|
|
{
|
|
EventManager.RegisterClassHandler(typeof (Window), UIElement.PreviewMouseDownEvent, new MouseButtonEventHandler(OnPreviewMouseDown));
|
|
EventManager.RegisterClassHandler(typeof (Window), UIElement.PreviewKeyDownEvent, new KeyEventHandler(OnPreviewKeyDown));
|
|
|
|
var settingsKeyValuePairList = _Mandator.Settings.SplitToKeyValuePairList(";", "=").ToList();
|
|
|
|
var x = settingsKeyValuePairList.FirstOrDefault(f => f.Key.Equals(SettingsKeys.TimeUntilUILock)).Value ?? "NULL";
|
|
|
|
var y = _LockUITime;
|
|
|
|
AutoLockUI.LockUITime = Convert.ToInt32(settingsKeyValuePairList.FirstOrDefault(f => f.Key.Equals(SettingsKeys.TimeUntilUILock)).Value ?? LockUITime.ToString());
|
|
|
|
|
|
AutoLockUI.DoAutoLockUIEvent += AutoLockUIDoAutoLockUIEvent;
|
|
AutoLockUI.StartAutoLockUIOption();
|
|
}
|
|
|
|
protected override void OnStartup(StartupEventArgs e)
|
|
{
|
|
//Licenser.LicenseKey = "DGF20-AUTJ7-3K8MD-DNNA";
|
|
DataControlBase.AllowInfiniteGridSize = true;
|
|
//Timeline.DesiredFrameRateProperty.OverrideMetadata(typeof(Timeline),
|
|
// new FrameworkPropertyMetadata { DefaultValue = 30 });
|
|
|
|
RenderTier = RenderCapability.Tier >> 16;
|
|
|
|
// Die Sprache für alle Threads auf Deutsch stellen.
|
|
var cultureInfo = CultureInfo.CreateSpecificCulture("de-DE");
|
|
Thread.CurrentThread.CurrentUICulture = cultureInfo;
|
|
Thread.CurrentThread.CurrentCulture = cultureInfo;
|
|
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
|
|
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
|
|
|
|
base.OnStartup(e);
|
|
//AppDomain.CurrentDomain.UnhandledException += (s, ex) => ShowError(null, ex.ExceptionObject as Exception, true);
|
|
|
|
Dispatcher.UnhandledException += (s, ex)
|
|
=>
|
|
{
|
|
if (ex.Exception == null || String.IsNullOrEmpty(ex.Exception.Message) ||
|
|
(!ex.Exception.ToString().Contains("DevExpress.Xpf.Bars.Customization.CustomizationControl.OnLoaded")
|
|
&& !ex.Exception.ToString().Contains("DevExpress.Xpf.Grid.Native.SelectionStrategyCellBase.IsCellSelected")))
|
|
|
|
{
|
|
ShowError(null, ex.Exception, true);
|
|
}
|
|
ex.Handled = true;
|
|
};
|
|
|
|
FrameworkElement.LanguageProperty.OverrideMetadata(typeof (FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
|
|
}
|
|
|
|
private static void ReloadSettings(List<SettingsDC> settings)
|
|
{
|
|
if (_LoggedOnUser != null)
|
|
_LoggedOnUser.Settings = settings;
|
|
}
|
|
|
|
private static void RestoreUserAppSettings()
|
|
{
|
|
if (_LoggedOnUser != null)
|
|
{
|
|
_AppSettings = new AppSettings();
|
|
var settings = _LoggedOnUser.Settings;
|
|
|
|
var val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.WindowStateType, settings);
|
|
if (int.TryParse(val, out var result))
|
|
{
|
|
_AppSettings.WindowState = (AppSettings.WindowStateType) result;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.SchedulerViewType, settings);
|
|
if(int.TryParse(val, out result))
|
|
{
|
|
_AppSettings.SchedulerViewType = (SchedulerViewType) result;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.SchedulerTimelineViewDayCount, settings);
|
|
if(int.TryParse(val, out result))
|
|
{
|
|
_AppSettings.SchedulerTimelineViewDayCount = result;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.SchedulerDayViewDayCount, settings);
|
|
if (int.TryParse(val, out result))
|
|
{
|
|
_AppSettings.SchedulerDayViewDayCount = result;
|
|
}
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeInterval, settings);
|
|
if(int.TryParse(val, out result))
|
|
{
|
|
_AppSettings.LastSelectedServiceRecordTimeInterval = (ServiceRecordTimeInterval)result;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.CustomerFilterInZeiterfassung, settings);
|
|
if(int.TryParse(val, out result))
|
|
{
|
|
_AppSettings.CustomerFilterInZeiterfassung = (CustomerFilterEnum)result;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.CustomerFilterSupportConcepts, settings);
|
|
if(int.TryParse(val, out result))
|
|
{
|
|
_AppSettings.CustomerFilterSupportConcepts = (CustomerFilterEnum)result;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.CustomerFilterCustomers, settings);
|
|
if(int.TryParse(val, out result))
|
|
{
|
|
_AppSettings.CustomerFilterCustomers = (CustomerFilterEnum)result;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.ShowServiceRecordGridControl, settings);
|
|
_AppSettings.ShowServiceRecordGridControl = val == "1";
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.ShowExpiredSupportConcepts, settings);
|
|
_AppSettings.ShowExpiredSupportConcepts = val != "0";
|
|
|
|
|
|
|
|
_AppSettings.StartupPanelMaximized = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.StartupPanelMaximized, settings);
|
|
|
|
_AppSettings.DocumentationFontSize = Convert.ToDouble(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.DocumentationFontSize, settings));
|
|
|
|
//val = GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.ZeigeNurMeineTermine");
|
|
//_AppSettings.ZeigeNurMeineTermine = val != "0";
|
|
|
|
_AppSettings.ZeigeNurMeineTermine = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.ZeigeNurMeineTermine, settings) == "1";
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, settings);
|
|
if(val != null)
|
|
{
|
|
_AppSettings.LastSelectedServiceRecordTimeIntervalDays = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, settings));
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, settings);
|
|
if (val != null)
|
|
{
|
|
_AppSettings.LastSelectedServiceRecordMonth = Convert.ToDateTime(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, settings));
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastKassenSortOrder, settings);
|
|
if (val != null)
|
|
{
|
|
_AppSettings.LastKassenSortOrder = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastKassenSortOrder, settings));
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LetzteZeiterfassungsDauer, settings);
|
|
if(val != null)
|
|
{
|
|
var x = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LetzteZeiterfassungsDauer, settings));
|
|
_AppSettings.LetzteZeiterfassungsDauer = x == 0 ? ZeiterfassungsDauer.Minuten : ZeiterfassungsDauer.Stunden;
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.StartupPanelOrder, settings);
|
|
if (val != null)
|
|
{
|
|
_AppSettings.StartupPanelOrder = new List<string>();
|
|
var panels = val.Split('|');
|
|
|
|
foreach(var item in panels)
|
|
{
|
|
_AppSettings.StartupPanelOrder.Add(item);
|
|
}
|
|
}
|
|
|
|
_AppSettings.IsDirty = false;
|
|
}
|
|
|
|
}
|
|
|
|
private void BtnOpenServiceRecordView_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (!(sender is Button btn))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!(btn.Tag is CompactSupportConceptDC dc))
|
|
{
|
|
return;
|
|
}
|
|
|
|
MainControl?.NavigateToServiceRecordView(dc.SupportConceptOid);
|
|
}
|
|
|
|
private void Togglebutton_maximise_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
MainControl?.Maximize();
|
|
}
|
|
|
|
private void Togglebutton_maximise_Unchecked(object sender, RoutedEventArgs e)
|
|
{
|
|
MainControl?.Minimize();
|
|
}
|
|
|
|
private void TogglebuttonChat_maximise_Unchecked(object sender, RoutedEventArgs e)
|
|
{
|
|
MainControl.HomeView.ServiceChatView?.Normal();
|
|
}
|
|
|
|
private void TogglebuttonChat_maximise_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
MainControl.HomeView.ServiceChatView?.Maximize();
|
|
}
|
|
|
|
private void TogglebuttonChat_Minimize_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
MainControl.HomeView.ServiceChatView?.Minimize();
|
|
}
|
|
|
|
private void FrameLeftMouseDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
var border = (Border) sender;
|
|
var borderParent = (Grid) border.Parent;
|
|
var template = borderParent.TemplatedParent;
|
|
var parent = new Window();
|
|
|
|
var x = (FrameworkElement) template;
|
|
if (x != null)
|
|
{
|
|
var y = new FrameworkElement();
|
|
while (y != null)
|
|
{
|
|
y = (FrameworkElement) x.Parent;
|
|
if (y != null)
|
|
{
|
|
x = y;
|
|
}
|
|
}
|
|
|
|
if (x is Window window)
|
|
{
|
|
parent = window;
|
|
parent.DragMove();
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void AutoLockUIDoAutoLockUIEvent()
|
|
{
|
|
//if (UserName.Equals("BSAdmin"))
|
|
//{
|
|
// AutoLockUI.StartAutoLockUIOption();
|
|
// return;
|
|
//}
|
|
|
|
if (CurrentBeWo.MainWindow?.Content is LockedPage)
|
|
{
|
|
AutoLockUI.StartAutoLockUIOption();
|
|
return;
|
|
}
|
|
|
|
_lockedContent = CurrentBeWo.MainWindow?.Content as FrameworkElement;
|
|
|
|
if (_lockedContent is Grid grid && grid.Children.Contains(LoginControl))
|
|
{
|
|
AutoLockUI.StartAutoLockUIOption();
|
|
return;
|
|
}
|
|
|
|
var openWindowCollection = Current.Windows;
|
|
foreach(var blubb in openWindowCollection)
|
|
{
|
|
var abc = (Window) blubb;
|
|
|
|
if(!abc.Title.Equals("BeWoPlaner") && blubb.GetType() == typeof(WindowContentHolder))
|
|
{
|
|
abc.Close();
|
|
}
|
|
else if (abc.Title.IndexOf("Popup") >= 0)
|
|
{
|
|
abc.Close();
|
|
}
|
|
}
|
|
|
|
MainControl.HideCurrentModalViewWindows();
|
|
|
|
var lockedPage = new LockedPage();
|
|
lockedPage.ButtonLogin.Click += UnlockBeWoPlaner;
|
|
|
|
if(CurrentBeWo?.MainWindow != null)
|
|
{
|
|
CurrentBeWo.MainWindow.Content = lockedPage;
|
|
|
|
Current.Dispatcher.Invoke(new Action(() => CurrentBeWo.MainWindow?.Activate()));
|
|
}
|
|
|
|
AutoLockUI.StartAutoLockUIOption();
|
|
}
|
|
|
|
private static void UnlockBeWoPlaner(object sender, RoutedEventArgs e)
|
|
{
|
|
var lbtn = (Button) sender;
|
|
|
|
var lbtnParent = (Grid) lbtn.Parent;
|
|
var mainWindowUIElements = new UIElement[lbtnParent.Children.Count];
|
|
lbtnParent.Children.CopyTo(mainWindowUIElements, 0);
|
|
|
|
var elementList = mainWindowUIElements.ToList();
|
|
var username = ((TextBox) elementList.Where(el => el is TextBox textBox && textBox.Name.Equals("TextBoxUsername")).ToList()[0]).Text;
|
|
var password = ((PasswordBox) elementList.Where(el => el is PasswordBox passwordBox && passwordBox.Name.Equals("PasswordBoxPassword")).ToList()[0]).Password;
|
|
|
|
if (string.IsNullOrEmpty(username) || !username.Equals(_LoggedOnUser.LoginName, StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
MessageBox.Show("Das Programm kann nur " + BS.Shared.Translation.Translator.Translate("vom Benutzer") + " '" + _LoggedOnUser.LoginName + "' entsperrt werden.", "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
return;
|
|
}
|
|
|
|
username = $"{username}//Version=Sperrung aufgehoben";
|
|
|
|
ServiceFacade.DoUserServiceAsync(u => u.IsUserValidTwoFactor(username, password, BeWoApp.TwoFactorPin, ""), r =>
|
|
{
|
|
if (!r.Equals(UserValidationResult.UserValid))
|
|
{
|
|
MessageBox.Show("Anmeldeinformationen nicht bekannt. Bitte überprüfen Sie den " + BS.Shared.Translation.Translator.Translate("Benutzernamen") + " und das Passwort!", "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
return;
|
|
}
|
|
|
|
AutoLockUI.HasJustBeenUnlocked = true;
|
|
|
|
Current.Dispatcher.Invoke(delegate
|
|
{
|
|
if(CurrentBeWo?.MainWindow != null)
|
|
{
|
|
CurrentBeWo.MainWindow.Content = _lockedContent;
|
|
}
|
|
|
|
MainControl.ShowCurrentModalViewWindowsAgain();
|
|
});
|
|
}, true);
|
|
}
|
|
|
|
private static void OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
AutoLockUI.ResetLockUITimer();
|
|
}
|
|
|
|
private static void OnPreviewKeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
AutoLockUI.ResetLockUITimer();
|
|
}
|
|
|
|
private void Hyperlink_Hilfeplan_Reaktivieren_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var scNavView = (SupportConceptNavigationView) MainControl.ActiveView;
|
|
|
|
if (scNavView != null)
|
|
{
|
|
var supportConcept = (CompactSupportConceptDC) ((Hyperlink) sender).Tag;
|
|
scNavView.MainNavigationView_OnReactivateObject(supportConcept);
|
|
}
|
|
}
|
|
private void Hyperlink_Hilfeplan_AusArchivHolen_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var scNavView = (SupportConceptNavigationView) MainControl.ActiveView;
|
|
|
|
if (scNavView != null)
|
|
{
|
|
var supportConcept = (CompactSupportConceptDC) ((Hyperlink) sender).Tag;
|
|
scNavView.MainNavigationView_AusArchivHolen(supportConcept);
|
|
}
|
|
}
|
|
|
|
public static void GetChatServerUrlAsync(Action<string> callback)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(chatServerURL))
|
|
{
|
|
var tenant = Tenant;
|
|
|
|
#if DEBUG
|
|
tenant = "5473568546";
|
|
#endif
|
|
|
|
var login = new Login(tenant, serverUrl =>
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(serverUrl))
|
|
{
|
|
callback(serverUrl);
|
|
}
|
|
}, errorMessage =>
|
|
{
|
|
MessageBox.Show(errorMessage, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
});
|
|
}
|
|
else
|
|
{
|
|
callback?.Invoke(chatServerURL);
|
|
}
|
|
}
|
|
public static void Cleanup()
|
|
{
|
|
_lockedContent = null;
|
|
LoginControl = null;
|
|
MainControl = null;
|
|
_AppSettings = null;
|
|
_CompactLoggedOnEmployee = null;
|
|
_LoggedOnEmployee = null;
|
|
_LoggedOnUser = null;
|
|
_Mandator = null;
|
|
|
|
}
|
|
|
|
//public static void InitBlubb()
|
|
//{
|
|
// var timer = new System.Threading.Timer(
|
|
// e => MainControl.AufOffeneTerminePruefen(), null ,TimeSpan.Zero, TimeSpan.FromMinutes(1)
|
|
// );
|
|
//}
|
|
|
|
public static void LogMessage(string message)
|
|
{
|
|
#if DEBUG
|
|
if(_DebugMessageLogView == null)
|
|
{
|
|
_DebugMessageLogView = new DebugMessageLogView();
|
|
}
|
|
|
|
_DebugMessageLogView.Closed += (s, e) => { _DebugMessageLogView = null; };
|
|
|
|
_DebugMessageLogView.Show();
|
|
_DebugMessageLogView.LogMessage(message);
|
|
#endif
|
|
}
|
|
|
|
public static void LogMessage(string message, Color customColor)
|
|
{
|
|
#if DEBUG
|
|
if(_DebugMessageLogView == null)
|
|
{
|
|
_DebugMessageLogView = new DebugMessageLogView();
|
|
}
|
|
|
|
_DebugMessageLogView.Closed += (s, e) => { _DebugMessageLogView = null; };
|
|
|
|
_DebugMessageLogView.Show();
|
|
_DebugMessageLogView.LogMessage(message, customColor);
|
|
#endif
|
|
}
|
|
}
|
|
} |