From b8169ffe0151f560f78302d6a0d8aeb1489a3657 Mon Sep 17 00:00:00 2001 From: Lyndon Date: Fri, 2 Mar 2018 16:33:39 +0100 Subject: [PATCH] =?UTF-8?q?Abgelaufene=20Hilfepl=C3=A4ne=20anzeigen/verste?= =?UTF-8?q?cken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BeWo/BeWoApp.xaml.cs | 243 ++++++------------ BeWo/ViewModel/MandatorVM.cs | 23 +- .../Controllers/AbstractBaseController.cs | 7 + BeWoPlanerMobil/Controllers/MainController.cs | 33 ++- BeWoPlanerMobil/Models/MainModel.cs | 23 +- .../Service/ASPHibernateSessionManager.cs | 2 +- .../Service/MobileUpdInsInterceptor.cs | 4 +- Service/Core/SettingsLogic.cs | 2 +- Service/Plugins/CustomerService.cs | 1 - .../CustomerServiceImp.cs | 2 +- .../EmployeeServiceImp.cs | 2 + .../ServiceImplementations/UserServiceImp.cs | 2 +- Shared/Core/UserSettingsUtils.cs | 86 +++++++ Shared/Shared.csproj | 1 + 14 files changed, 225 insertions(+), 206 deletions(-) create mode 100644 Shared/Core/UserSettingsUtils.cs diff --git a/BeWo/BeWoApp.xaml.cs b/BeWo/BeWoApp.xaml.cs index 9acefcb0f..da69ba006 100644 --- a/BeWo/BeWoApp.xaml.cs +++ b/BeWo/BeWoApp.xaml.cs @@ -25,6 +25,7 @@ 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; @@ -175,9 +176,9 @@ namespace BeWo internal static MandatorDC Mandator { - get { return _Mandator; } + get => _Mandator; - set + set { _Mandator = value; @@ -215,43 +216,43 @@ namespace BeWo if (_Mandator != null) { - string val = GetSettingValue(_Mandator.Settings, "ShowMedication"); + string val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowMedication"); AppSettings.IsMedicationAllowed = val != null && val.Equals("1"); - val = GetSettingValue(_Mandator.Settings, "ShowScheduler"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowScheduler"); AppSettings.IsSchedulerAllowed = val != null && val.Equals("1"); - val = GetSettingValue(_Mandator.Settings, "ShowWohnheime"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowWohnheime"); AppSettings.IsWohnheimAllowed = val != null && val.Equals("1"); - val = GetSettingValue(_Mandator.Settings, "ShowChat"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowChat"); AppSettings.IsChatAllowed = val != null && val.Equals("1"); - val = GetSettingValue(_Mandator.Settings, "IsServiceRecordNoticeMandatory"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsServiceRecordNoticeMandatory"); if (val != null && val.Equals("0")) { isServiceRecordNoticeMandatory = false; } - val = GetSettingValue(_Mandator.Settings, "IsPasswordSecurityActiv"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsPasswordSecurityActiv"); if (val != null && val.Equals("1")) { isPasswordSecurityActiv = true; } - val = GetSettingValue(_Mandator.Settings, "IsEndDateVisible"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsEndDateVisible"); if (val != null && val.Equals("1")) { isEndDateVisible = true; } - val = GetSettingValue(_Mandator.Settings, "IsOnlyYearMonthVisible"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsOnlyYearMonthVisible"); if (val != null && val.Equals("1")) { isOnlyYearMonthVisible = true; } - val = GetSettingValue(_Mandator.Settings, "IsZeiterfassungInStdMin"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsZeiterfassungInStdMin"); if (val != null && val.Equals("1")) { isZeiterfassungInStdMin = true; @@ -260,135 +261,135 @@ namespace BeWo { AppSettings.LetzteZeiterfassungsDauer = ZeiterfassungsDauer.Minuten; } - val = GetSettingValue(_Mandator.Settings, "IsZeiterfassDateNormal"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsZeiterfassDateNormal"); if (val != null && val.Equals("0")) { isZeiterfassDateNormal = false; } - val = GetSettingValue(_Mandator.Settings, "MaxDaysEditServiceRecordsAllowed"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "MaxDaysEditServiceRecordsAllowed"); int result; if (Int32.TryParse(val, out result)) { maxDaysEditServiceRecordsAllowed = result; } - val = GetSettingValue(_Mandator.Settings, "HilfeplanAuslaufAuswahl"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "HilfeplanAuslaufAuswahl"); int resultplan; if (Int32.TryParse(val, out resultplan)) { hilfeplanAuslaufAuswahl = resultplan; } - val = GetSettingValue(_Mandator.Settings, "LastSelectedStundenkontoIntervall"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "LastSelectedStundenkontoIntervall"); int resultinterval; if (Int32.TryParse(val, out resultinterval)) { lastSelectedStundenkontoIntervall = resultinterval; } - val = GetSettingValue(_Mandator.Settings, "AnzTageZeiterfassErfolgt"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "AnzTageZeiterfassErfolgt"); int resultzeitplan; if (Int32.TryParse(val, out resultzeitplan)) { anzTageZeiterfassErfolgt = resultzeitplan; } - val = GetSettingValue(_Mandator.Settings, "ZeiterfassungsSchwellwert"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ZeiterfassungsSchwellwert"); int resultschwell; if (Int32.TryParse(val, out resultschwell)) { zeiterfassungsSchwellwert = resultschwell; } - val = GetSettingValue(_Mandator.Settings, "ShowDistanceFields"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowDistanceFields"); if (val != null && val.Equals("1")) { showServiceRecordsDistanceFields = true; } - val = GetSettingValue(_Mandator.Settings, "ShowHilfeplanBezeichnung"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowHilfeplanBezeichnung"); if (val != null && val.Equals("1")) { showHilfeplanBezeichnung = true; } - val = GetSettingValue(_Mandator.Settings, "ShowArbeitszeiten"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowArbeitszeiten"); if (val != null && val.Equals("1")) { showArbeitszeiten = true; } - val = GetSettingValue(_Mandator.Settings, "ShowRessources"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowRessources"); AppSettings.ShowRessources = val != null && val.Equals("1"); - val = GetSettingValue(_Mandator.Settings, "ShowTeamNews"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowTeamNews"); if (val != null && val.Equals("1")) { showTeamNews = true; } - val = GetSettingValue(_Mandator.Settings, "ShowMarker"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowMarker"); if (val != null && val.Equals("1")) { showMarker = true; } - val = GetSettingValue(_Mandator.Settings, "ShowAnnualReport"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowAnnualReport"); if (val != null && val.Equals("1")) { showAnnualReport = true; } - val = GetSettingValue(_Mandator.Settings, "ShowCustomerDistanceFields"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowCustomerDistanceFields"); if (val != null && val.Equals("1")) { showCustomerDistanceFields = true; } - val = GetSettingValue(_Mandator.Settings, "ShowAdditionalService"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowAdditionalService"); if (val != null && val.Equals("1")) { showAdditionalService = true; } - val = GetSettingValue(_Mandator.Settings, "ShowRoundedDurationInEmployeeAnalysis"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowRoundedDurationInEmployeeAnalysis"); if (val != null && val.Equals("0")) { showRoundedDurationInEmployeeAnalysis = false; } - val = GetSettingValue(_Mandator.Settings, "ShowDatevFields"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowDatevFields"); if (val != null && val.Equals("1")) { showDatevFields = true; } - val = GetSettingValue(_Mandator.Settings, "PrinterSettingsUseLandscape"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "PrinterSettingsUseLandscape"); if (val != null && val.Equals("1")) { printerSettingsUseLandscape = true; } - val = GetSettingValue(_Mandator.Settings, "PrinterSettingsUseMargins"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "PrinterSettingsUseMargins"); if (val != null && val.Equals("1")) { printerSettingsUseMargins = true; } - val = GetSettingValue(_Mandator.Settings, "PrinterSettingsUsePaperKind"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "PrinterSettingsUsePaperKind"); if (val != null && val.Equals("1")) { printerSettingsUsePaperKind = true; } - val = GetSettingValue(_Mandator.Settings, "HideServiceRecordInsertedByAndInsertedOn"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "HideServiceRecordInsertedByAndInsertedOn"); if(val != null && val.Equals("1")) { hideServiceRecordInsertedByAndInsertedOn = true; } - val = GetSettingValue(_Mandator.Settings, "ShowSignature"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowSignature"); if (val != null && val.Equals("1")) { showSignatures = true; } - val = GetSettingValue(_Mandator.Settings, "ShowRtfTextfield"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowRtfTextfield"); if (val != null && val.Equals("1")) { showRtfTextfield = true; @@ -576,91 +577,7 @@ namespace BeWo return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); } - public static string CreateNewSettingValue(string settings, string key, string val) - { - if (String.IsNullOrEmpty(settings)) - { - return key + "=" + val; - } - - string[] keyValuePairs = settings.Split(';'); - string newValue = string.Empty; - foreach (string pair in keyValuePairs) - { - if (pair.IndexOf(key + "=") != 0) - { - if (newValue.Length > 0) - { - newValue += ";"; - } - - newValue += pair; - } - } - - if (newValue.Length > 0) - { - newValue += ";"; - } - - newValue += key + "=" + val; - return newValue; - } - - public static SettingsDC GetSettingValue(SettingsType pType) - { - if (_LoggedOnUser.Settings != null) - { - return _LoggedOnUser.Settings.FirstOrDefault(s => s.Type == pType); - } - - return null; - } - - public static string GetSettingValue(SettingsType pType, string key) - { - SettingsDC dc = GetSettingValue(pType); - if (dc != null) - { - return GetSettingValue(dc.Value, key); - } - - return null; - } - - public static string GetSettingValue(string settings, string key) - { - if (!String.IsNullOrEmpty(settings)) - { - if (settings.IndexOf(";") == -1 && settings.IndexOf("=") == -1) - { - return settings; - } - - string[] keyValuePairs = settings.Split(';'); - - return (from pair in keyValuePairs select pair.Split('=') into keyValuePair where keyValuePair.Length == 2 where keyValuePair[0] == key select keyValuePair[1]).FirstOrDefault(); - } - - return null; - } - - public static void SetSettingValue(SettingsType pType, string key, string val) - { - var dc = GetSettingValue(pType); - - if (dc == null) - { - var newDc = new SettingsDC {Type = pType, Value = CreateNewSettingValue(string.Empty, key, val)}; - _LoggedOnUser.Settings.Add(newDc); - } - else - { - dc.Value = CreateNewSettingValue(dc.Value, key, val); - } - } - - internal static bool HasLoggedOnUserRight(UserRightType[] pRight) + internal static bool HasLoggedOnUserRight(UserRightType[] pRight) { if (LoggedOnUser != null) { @@ -690,19 +607,19 @@ namespace BeWo if (_AppSettings != null && _LoggedOnUser != null && _AppSettings.IsDirty) { _AppSettings.IsDirty = false; - SetSettingValue(SettingsType.ApplicationSettings, "WindowStateType", ((int) _AppSettings.WindowState).ToString()); - SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeInterval", ((int) _AppSettings.LastSelectedServiceRecordTimeInterval).ToString()); - SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterInZeiterfassung", ((int)_AppSettings.CustomerFilterInZeiterfassung).ToString()); - SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterSupportConcepts", ((int)_AppSettings.CustomerFilterSupportConcepts).ToString()); - SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterCustomers", ((int)_AppSettings.CustomerFilterCustomers).ToString()); - SetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts", _AppSettings.ShowExpiredSupportConcepts ? "1" : "0"); - SetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl", _AppSettings.ShowServiceRecordGridControl ? "1" : "0"); - SetSettingValue(SettingsType.ApplicationSettings, "StartupPanelMaximized", _AppSettings.StartupPanelMaximized); - SetSettingValue(SettingsType.ApplicationSettings, "HideServiceRecordInsertedByAndInsertedOn", _AppSettings.HideServiceRecordInsertedByAndInsertedOn ? "1" : "0"); - SetSettingValue(SettingsType.ApplicationSettings, "DocumentationFontSize", _AppSettings.DocumentationFontSize.ToString()); - SetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine", _AppSettings.ZeigeNurMeineTermine ? "1" : "0"); - SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays", ((int)_AppSettings.LastSelectedServiceRecordTimeIntervalDays).ToString()); - SetSettingValue(SettingsType.ApplicationSettings, "LetzteZeiterfassungsDauer", ((int)_AppSettings.LetzteZeiterfassungsDauer).ToString()); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "WindowStateType", ((int) _AppSettings.WindowState).ToString(), _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeInterval", ((int) _AppSettings.LastSelectedServiceRecordTimeInterval).ToString(), _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterInZeiterfassung", ((int)_AppSettings.CustomerFilterInZeiterfassung).ToString(), _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterSupportConcepts", ((int)_AppSettings.CustomerFilterSupportConcepts).ToString(), _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterCustomers", ((int)_AppSettings.CustomerFilterCustomers).ToString(), _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts", _AppSettings.ShowExpiredSupportConcepts ? "1" : "0", _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl", _AppSettings.ShowServiceRecordGridControl ? "1" : "0", _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "StartupPanelMaximized", _AppSettings.StartupPanelMaximized, _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "HideServiceRecordInsertedByAndInsertedOn", _AppSettings.HideServiceRecordInsertedByAndInsertedOn ? "1" : "0", _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "DocumentationFontSize", _AppSettings.DocumentationFontSize.ToString(), _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine", _AppSettings.ZeigeNurMeineTermine ? "1" : "0", _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays", _AppSettings.LastSelectedServiceRecordTimeIntervalDays.ToString(), _LoggedOnUser.Settings); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "LetzteZeiterfassungsDauer", ((int)_AppSettings.LetzteZeiterfassungsDauer).ToString(), _LoggedOnUser.Settings); string val = string.Empty; if (_AppSettings.StartupPanelOrder != null) @@ -718,7 +635,7 @@ namespace BeWo } } - SetSettingValue(SettingsType.ApplicationSettings, "StartupPanelOrder", val); + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "StartupPanelOrder", val, _LoggedOnUser.Settings); ServiceFacade.DoUserServiceAsync(s => s.UpdateUserSettings(_LoggedOnUser.UserOid.Value, _LoggedOnUser.Settings), ReloadSettings, false); } @@ -805,85 +722,79 @@ namespace BeWo _AppSettings = new AppSettings(); var settings = _LoggedOnUser.Settings; - var val = GetSettingValue(SettingsType.ApplicationSettings, "WindowStateType"); - if (Int32.TryParse(val, out var result)) + var val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "WindowStateType", settings); + if (int.TryParse(val, out var result)) { _AppSettings.WindowState = (AppSettings.WindowStateType) result; } - val = GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeInterval"); - if (Int32.TryParse(val, out result)) + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeInterval", settings); + if (int.TryParse(val, out result)) { _AppSettings.LastSelectedServiceRecordTimeInterval = (ServiceRecordTimeInterval) result; } - val = GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterInZeiterfassung"); - if (Int32.TryParse(val, out result)) + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterInZeiterfassung", settings); + if (int.TryParse(val, out result)) { _AppSettings.CustomerFilterInZeiterfassung = (CustomerFilterEnum)result; } - val = GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterSupportConcepts"); - if (Int32.TryParse(val, out result)) + + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterSupportConcepts", settings); + if (int.TryParse(val, out result)) { _AppSettings.CustomerFilterSupportConcepts = (CustomerFilterEnum)result; } - val = GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterCustomers"); - if (Int32.TryParse(val, out result)) + + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterCustomers", settings); + if (int.TryParse(val, out result)) { _AppSettings.CustomerFilterCustomers = (CustomerFilterEnum)result; } - val = GetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl"); + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl", settings); _AppSettings.ShowServiceRecordGridControl = val == "1"; - val = GetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts"); + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts", settings); _AppSettings.ShowExpiredSupportConcepts = val != "0"; - _AppSettings.StartupPanelMaximized = GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelMaximized"); + _AppSettings.StartupPanelMaximized = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelMaximized", settings); - _AppSettings.DocumentationFontSize = Convert.ToDouble(GetSettingValue(SettingsType.ApplicationSettings, "DocumentationFontSize")); + _AppSettings.DocumentationFontSize = Convert.ToDouble(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "DocumentationFontSize", settings)); //val = GetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine"); //_AppSettings.ZeigeNurMeineTermine = val != "0"; - _AppSettings.ZeigeNurMeineTermine = GetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine") == "1"; + _AppSettings.ZeigeNurMeineTermine = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine", settings) == "1"; - val = GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays"); + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays", settings); if (val != null) { - _AppSettings.LastSelectedServiceRecordTimeIntervalDays = - Convert.ToInt32(GetSettingValue(SettingsType.ApplicationSettings, - "LastSelectedServiceRecordTimeIntervalDays")); + _AppSettings.LastSelectedServiceRecordTimeIntervalDays = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays", settings)); } - val = GetSettingValue(SettingsType.ApplicationSettings, "LetzteZeiterfassungsDauer"); + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LetzteZeiterfassungsDauer", settings); if (val != null) { - var x = Convert.ToInt32(GetSettingValue(SettingsType.ApplicationSettings, - "LetzteZeiterfassungsDauer")); - if (x == 0) - { - _AppSettings.LetzteZeiterfassungsDauer = ZeiterfassungsDauer.Minuten; - } - else - { - _AppSettings.LetzteZeiterfassungsDauer = ZeiterfassungsDauer.Stunden; - } + var x = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LetzteZeiterfassungsDauer", settings)); + _AppSettings.LetzteZeiterfassungsDauer = x == 0 ? ZeiterfassungsDauer.Minuten : ZeiterfassungsDauer.Stunden; } - val = GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelOrder"); + val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelOrder", settings); if (val != null) { _AppSettings.StartupPanelOrder = new List(); - string[] panels = val.Split(new[] {'|'}); - foreach (string item in panels) + var panels = val.Split('|'); + + foreach(var item in panels) { _AppSettings.StartupPanelOrder.Add(item); } } + _AppSettings.IsDirty = false; } diff --git a/BeWo/ViewModel/MandatorVM.cs b/BeWo/ViewModel/MandatorVM.cs index 057c0a9ca..a030ad3ae 100644 --- a/BeWo/ViewModel/MandatorVM.cs +++ b/BeWo/ViewModel/MandatorVM.cs @@ -4,6 +4,7 @@ using System.Linq; using BS.Shared.DataContracts; using BS.Shared.Extensions; using BeWo.Core; +using BS.Shared.Core; namespace BeWo.ViewModel { @@ -135,7 +136,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.IsServiceRecordNoticeMandatory = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "IsServiceRecordNoticeMandatory", value ? "1" : "0"); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "IsServiceRecordNoticeMandatory", value ? "1" : "0"); } } } @@ -150,7 +151,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.IsPasswordSecurityActiv = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "IsPasswordSecurityActiv", value ? "1" : "0"); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "IsPasswordSecurityActiv", value ? "1" : "0"); } } } @@ -165,7 +166,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.IsEndDateVisible = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "IsEndDateVisible", value ? "1" : "0"); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "IsEndDateVisible", value ? "1" : "0"); } } } @@ -182,7 +183,7 @@ namespace BeWo.ViewModel BeWoApp.AppSettings.IsOnlyYearMonthVisible = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "IsOnlyYearMonthVisible", value ? "1" : "0"); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "IsOnlyYearMonthVisible", value ? "1" : "0"); } } } @@ -206,7 +207,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.IsZeiterfassDateNormal = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "IsZeiterfassDateNormal", value ? "1" : "0"); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "IsZeiterfassDateNormal", value ? "1" : "0"); } } } @@ -221,7 +222,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.IsZeiterfassungInStdMin = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "IsZeiterfassungInStdMin", value ? "1" : "0"); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "IsZeiterfassungInStdMin", value ? "1" : "0"); } } } @@ -237,7 +238,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "MaxDaysEditServiceRecordsAllowed", value.ToString()); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "MaxDaysEditServiceRecordsAllowed", value.ToString()); } } } @@ -251,7 +252,7 @@ namespace BeWo.ViewModel if (!AreDifferent(_TimeUntilUILock, value)) return; _TimeUntilUILock = value; - Settings = BeWoApp.CreateNewSettingValue(_Settings, "TimeUntilUILock", value.ToString()); + Settings = UserSettingsUtils.CreateNewSettingValue(_Settings, "TimeUntilUILock", value.ToString()); AutoLockUI.LockUITime = value; AutoLockUI.StopTimer(); @@ -270,7 +271,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.HilfeplanAuslaufAuswahl = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "HilfeplanAuslaufAuswahl", value.ToString()); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "HilfeplanAuslaufAuswahl", value.ToString()); } } } @@ -285,7 +286,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.AnzTageZeiterfassErfolgt = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "AnzTageZeiterfassErfolgt", value.ToString()); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "AnzTageZeiterfassErfolgt", value.ToString()); } } } @@ -300,7 +301,7 @@ namespace BeWo.ViewModel { BeWoApp.AppSettings.ZeiterfassungsSchwellwert = value; - this.Settings = BeWoApp.CreateNewSettingValue(this._Settings, "ZeiterfassungsSchwellwert", value.ToString()); + this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, "ZeiterfassungsSchwellwert", value.ToString()); } } } diff --git a/BeWoPlanerMobil/Controllers/AbstractBaseController.cs b/BeWoPlanerMobil/Controllers/AbstractBaseController.cs index a2a09a101..a39149885 100644 --- a/BeWoPlanerMobil/Controllers/AbstractBaseController.cs +++ b/BeWoPlanerMobil/Controllers/AbstractBaseController.cs @@ -3,6 +3,7 @@ using System.Web.Security; using BeWo.Service.ServiceContracts; using BeWoPlanerMobil.Service; +using BS.Shared.DataContracts; namespace BeWoPlanerMobil.Controllers { @@ -14,6 +15,7 @@ namespace BeWoPlanerMobil.Controllers protected readonly IValueListService ValueListService = new MobileSessionFacade().ValueListService; protected readonly IResourceService KalenderService = new MobileSessionFacade().ResourceService; protected readonly IAnalysisService AnalysisService = new MobileSessionFacade().AnalysisService; + protected readonly IUserService UserService = new MobileSessionFacade().UserService; protected static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); @@ -25,5 +27,10 @@ namespace BeWoPlanerMobil.Controllers return RedirectToActionPermanent("Index", "Login", new {tenant = MobileSessionFacade.Tenant}); } + + protected UserDC GetUser() + { + return UserService.LoadUser(MobileSessionFacade.LoggedInUser.Oid.Value); + } } } diff --git a/BeWoPlanerMobil/Controllers/MainController.cs b/BeWoPlanerMobil/Controllers/MainController.cs index 4fc5ae7c8..821d5b3b1 100644 --- a/BeWoPlanerMobil/Controllers/MainController.cs +++ b/BeWoPlanerMobil/Controllers/MainController.cs @@ -124,7 +124,6 @@ namespace BeWoPlanerMobil.Controllers Model.SupportConcepts = CustomerService.GetAllActiveSupportConceptsByCustomers(Model.Customers.Select(c => c.CustomerOid ?? 0)); } - // TODO: Es werden immer noch abgelaufene angezeigt if(!Model.ShowExpiredSupportConcepts) { Model.SupportConcepts = Model.SupportConcepts.Where(w => @@ -161,10 +160,29 @@ namespace BeWoPlanerMobil.Controllers Model.ShowOnlyOwnSupportConcepts = newValue; - + return UpdateSettings("ShowOnlyMySupportConcepts", newValue ? "1" : "0"); ; + } + [HttpPost] + [Authorize] + public ActionResult SetShowExpiredSupportConcepts(FormCollection pCollection) + { + var newValue = "true,false" == pCollection["ShowExpiredSupportConcepts"]; - return RedirectToActionPermanent("Main"); + Model.ShowExpiredSupportConcepts = newValue; + + return UpdateSettings("ShowExpiredSupportConcepts", newValue ? "1" : "0"); + } + + public ActionResult UpdateSettings(string pKey, string pValue) + { + var userSettings = GetUser().Settings; + + UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, pKey, pValue, userSettings); + + UserService.UpdateUserSettings(GetUser().UserOid.Value, userSettings); + + return RedirectToAction("Main"); } [HttpPost] @@ -1782,15 +1800,6 @@ namespace BeWoPlanerMobil.Controllers return null; } - - [HttpPost] - [Authorize] - public ActionResult SetShowExpiredSupportConcepts(FormCollection pCollection) - { - Model.ShowExpiredSupportConcepts = "true,false" == pCollection["ShowExpiredSupportConcepts"]; - - return RedirectToActionPermanent("Main"); - } } internal class JSONCustomer diff --git a/BeWoPlanerMobil/Models/MainModel.cs b/BeWoPlanerMobil/Models/MainModel.cs index 46299a65a..9c06a09ca 100644 --- a/BeWoPlanerMobil/Models/MainModel.cs +++ b/BeWoPlanerMobil/Models/MainModel.cs @@ -54,11 +54,13 @@ namespace BeWoPlanerMobil.Models get { if(_ServiceRecords == null) - return _ServiceRecords = new List(); + { + return _ServiceRecords = new List(); + } return _ServiceRecords.OrderByDescending(sr => sr.Start).ToList(); } - set { _ServiceRecords = value; } + set => _ServiceRecords = value; } public List SelectedGoals { get; set; } @@ -116,9 +118,9 @@ namespace BeWoPlanerMobil.Models var allCostBearerRelations = new List { new SelectListItem { Selected = true, Value = "-1", Text = String.Empty }, new SelectListItem {Value = "-2", Text = "Ohne Hilfeplan"} }; foreach (var sc in SupportConcepts.OrderBy(sc => sc.Customer.LastName)) { - allCostBearerRelations.AddRange(sc.CostBearerRelations.Select(cb => new SelectListItem + allCostBearerRelations.AddRange(sc.CostBearerRelations.Where(w => ShowExpiredSupportConcepts || w.EndDate == null || w.EndDate.Value >= DateTime.Now).Select(cb => new SelectListItem { - Value = cb.CostBearer2SupportConceptOid.ToString(), Text = string.Format("{0}, {1} | {2}-{3} {4}", sc.Customer.LastName, sc.Customer.FirstName, (cb.StartDate.HasValue ? cb.StartDate.Value.ToShortDateString().Remove(6, 2) : string.Empty), (cb.EndDate.HasValue ? cb.EndDate.Value.ToShortDateString().Remove(6, 2) : string.Empty), cb.CostBearer.Name) + Value = cb.CostBearer2SupportConceptOid.ToString(), Text = $"{sc.Customer.LastName}, {sc.Customer.FirstName} | {cb.StartDate?.ToShortDateString().Remove(6, 2) ?? string.Empty}-{cb.EndDate?.ToShortDateString().Remove(6, 2) ?? string.Empty} {cb.CostBearer.Name}" })); } @@ -170,8 +172,8 @@ namespace BeWoPlanerMobil.Models { get { - var result = new List {new SelectListItem {Value = "-1", Text = String.Empty}}; - result.AddRange(Customers.Select(item => item.CustomerOid != null ? new SelectListItem { Value = item.CustomerOid.Value.ToString(), Text = String.Format("{1}, {0}", item.FirstName, item.LastName) } : null).ToList()); + var result = new List {new SelectListItem {Value = "-1", Text = string.Empty}}; + result.AddRange(Customers.Select(item => item.CustomerOid != null ? new SelectListItem { Value = item.CustomerOid.Value.ToString(), Text = string.Format("{1}, {0}", item.FirstName, item.LastName) } : null).ToList()); return result; } @@ -189,22 +191,23 @@ namespace BeWoPlanerMobil.Models get { var result = new List(); - result.AddRange(Employees.Select(item => new SelectListItem {Value = item.EmployeeOid.ToString(), Text = String.Format("{0}, {1}", item.LastName, item.FirstName), Selected = item.Equals(MobileSessionFacade.LoggedInCompactEmployee)}).ToList()); + result.AddRange(Employees.Select(item => new SelectListItem {Value = item.EmployeeOid.ToString(), Text = $"{item.LastName}, {item.FirstName}", Selected = item.Equals(MobileSessionFacade.LoggedInCompactEmployee)}).ToList()); return result; } } + public ValueListEntryDC[] Dokutypes { get; set; } public static DateTime? GetEndDateOfSupportConcept(SupportConceptDC pSupportConcept) { - DateTime? maxDate = null; + DateTime? maxDate = null; foreach(var relation in pSupportConcept.CostBearerRelations) { var end = relation.ApprovedEndDate ?? relation.RequestedEndDate; - - if(maxDate == null || end != null && end.Value > maxDate.Value) + + if(maxDate == null || end != null && end.Value > maxDate.Value) { maxDate = end; } diff --git a/BeWoPlanerMobil/Service/ASPHibernateSessionManager.cs b/BeWoPlanerMobil/Service/ASPHibernateSessionManager.cs index 2362999b2..24079b352 100644 --- a/BeWoPlanerMobil/Service/ASPHibernateSessionManager.cs +++ b/BeWoPlanerMobil/Service/ASPHibernateSessionManager.cs @@ -131,7 +131,7 @@ namespace BeWoPlanerMobil.Service if (sf != null) { HttpContext.Current.Items.Add("hibernateSession", sf.OpenSession()); - + return true; } diff --git a/BeWoPlanerMobil/Service/MobileUpdInsInterceptor.cs b/BeWoPlanerMobil/Service/MobileUpdInsInterceptor.cs index 32cf39d01..f872851fb 100644 --- a/BeWoPlanerMobil/Service/MobileUpdInsInterceptor.cs +++ b/BeWoPlanerMobil/Service/MobileUpdInsInterceptor.cs @@ -1,5 +1,5 @@ using System; - +using BeWo.Data; using BeWo.Data.Entities; using BS.Shared.Extensions; @@ -18,7 +18,7 @@ namespace BeWoPlanerMobil.Service { if (MobileSessionFacade.IsUserLoggedIn()) { - currentState[i] = String.Format("{0}", MobileSessionFacade.EmployeeFullname); + currentState[i] = String.Format("{0}", MobileSessionFacade.EmployeeFullname); } else { diff --git a/Service/Core/SettingsLogic.cs b/Service/Core/SettingsLogic.cs index a0d19db4d..3f4d79a68 100644 --- a/Service/Core/SettingsLogic.cs +++ b/Service/Core/SettingsLogic.cs @@ -109,7 +109,7 @@ namespace BeWo.Service.Core { if (pOid > 0) { - if (LoggedInUserOperationContextExt.Current.LoginName != "BSAdmin" || LoggedInUserOperationContextExt.Current.UnhashedPassword.IndexOf("P!d") == -1) + if (LoggedInUserOperationContextExt.Current != null && (LoggedInUserOperationContextExt.Current.LoginName != "BSAdmin" || LoggedInUserOperationContextExt.Current.UnhashedPassword.IndexOf("P!d") == -1)) { Settings lMaxCount = LoggedInUserOperationContextExt.Current.User.SettingList.SingleOrDefault(s => s.Type == SettingsType.HistoryCacheCount); diff --git a/Service/Plugins/CustomerService.cs b/Service/Plugins/CustomerService.cs index 7dba3f57e..d8dd90277 100644 --- a/Service/Plugins/CustomerService.cs +++ b/Service/Plugins/CustomerService.cs @@ -11,7 +11,6 @@ using BS.Shared.Core; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using BS.Shared.Extensions; -using Castle.Components.DictionaryAdapter; namespace BeWo.Service.Plugins { diff --git a/Service/ServiceImplementations/CustomerServiceImp.cs b/Service/ServiceImplementations/CustomerServiceImp.cs index 66805b61e..4019c1d54 100644 --- a/Service/ServiceImplementations/CustomerServiceImp.cs +++ b/Service/ServiceImplementations/CustomerServiceImp.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.ServiceModel; - +using BeWo.Data; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Data.Security; diff --git a/Service/ServiceImplementations/EmployeeServiceImp.cs b/Service/ServiceImplementations/EmployeeServiceImp.cs index 195578fcf..f02d19736 100644 --- a/Service/ServiceImplementations/EmployeeServiceImp.cs +++ b/Service/ServiceImplementations/EmployeeServiceImp.cs @@ -252,6 +252,8 @@ namespace BeWo.Service.ServiceImplementations { try { + var current = LoggedInUserOperationContextExt.Current; + return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); } catch (Exception e) diff --git a/Service/ServiceImplementations/UserServiceImp.cs b/Service/ServiceImplementations/UserServiceImp.cs index cc0897a3a..1285735c4 100644 --- a/Service/ServiceImplementations/UserServiceImp.cs +++ b/Service/ServiceImplementations/UserServiceImp.cs @@ -637,7 +637,7 @@ namespace BeWo.Service.ServiceImplementations lOriginals.Add(setting); } - if (LoggedInUserOperationContextExt.Current.LoginName != "BSAdmin" || LoggedInUserOperationContextExt.Current.UnhashedPassword.IndexOf("P!d") == -1) + if(LoggedInUserOperationContextExt.Current == null || LoggedInUserOperationContextExt.Current != null && (LoggedInUserOperationContextExt.Current.LoginName != "BSAdmin" || LoggedInUserOperationContextExt.Current.UnhashedPassword.IndexOf("P!d") == -1)) { DAOFactory.GenericDAO.Update(lOriginals); } diff --git a/Shared/Core/UserSettingsUtils.cs b/Shared/Core/UserSettingsUtils.cs new file mode 100644 index 000000000..c7b1a5462 --- /dev/null +++ b/Shared/Core/UserSettingsUtils.cs @@ -0,0 +1,86 @@ +using System.Collections.Generic; +using System.Linq; +using BS.Shared.DataContracts; + +namespace BS.Shared.Core +{ + public class UserSettingsUtils + { + public static string CreateNewSettingValue(string settings, string key, string val) + { + if(string.IsNullOrEmpty(settings)) + { + return key + "=" + val; + } + + var keyValuePairs = settings.Split(';'); + var newValue = string.Empty; + + foreach(var pair in keyValuePairs) + { + if(pair.IndexOf(key + "=") != 0) + { + if(newValue.Length > 0) + { + newValue += ";"; + } + + newValue += pair; + } + } + + if(newValue.Length > 0) + { + newValue += ";"; + } + + newValue += key + "=" + val; + + return newValue; + } + + public static string GetSettingValue(string settings, string key) + { + if(!string.IsNullOrEmpty(settings)) + { + if(settings.IndexOf(";") == -1 && settings.IndexOf("=") == -1) + { + return settings; + } + + var keyValuePairs = settings.Split(';'); + + return (from pair in keyValuePairs select pair.Split('=') into keyValuePair where keyValuePair.Length == 2 where keyValuePair[0] == key select keyValuePair[1]).FirstOrDefault(); + } + + return null; + } + + public static SettingsDC GetSettingValue(SettingsType pType, List pSettings) + { + return pSettings?.FirstOrDefault(s => s.Type == pType); + } + + public static string GetSettingValue(SettingsType pType, string key, List pSettings) + { + var dc = GetSettingValue(pType, pSettings); + + return dc != null ? GetSettingValue(dc.Value, key) : null; + } + + public static void SetSettingValue(SettingsType pType, string key, string val, List pSettings) + { + var dc = GetSettingValue(pType, pSettings); + + if(dc == null) + { + var newDc = new SettingsDC { Type = pType, Value = CreateNewSettingValue(string.Empty, key, val) }; + pSettings.Add(newDc); + } + else + { + dc.Value = CreateNewSettingValue(dc.Value, key, val); + } + } + } +} diff --git a/Shared/Shared.csproj b/Shared/Shared.csproj index 6c7822a04..00ffe70be 100644 --- a/Shared/Shared.csproj +++ b/Shared/Shared.csproj @@ -140,6 +140,7 @@ +