/// connect to the server public static void Connect(string AConfigName) { TUnhandledThreadExceptionHandler UnhandledThreadExceptionHandler; // Set up Handlers for 'UnhandledException' // Note: BOTH handlers are needed for a WinForms Application!!! AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionHandling.UnhandledExceptionHandler); UnhandledThreadExceptionHandler = new TUnhandledThreadExceptionHandler(); Application.ThreadException += new ThreadExceptionEventHandler(UnhandledThreadExceptionHandler.OnThreadException); new TAppSettingsManager(AConfigName); CommonNUnitFunctions.InitRootPath(); Catalog.Init(); TClientTasksQueue.ClientTasksInstanceType = typeof(TClientTaskInstance); TConnectionManagementBase.ConnectorType = typeof(TConnector); TConnectionManagementBase.GConnectionManagement = new TConnectionManagement(); new TClientSettings(); TClientInfo.InitializeUnit(); TCacheableTablesManager.InitializeUnit(); // Set up Data Validation Delegates TSharedValidationHelper.SharedGetDataDelegate = @TServerLookup.TMCommon.GetData; TSharedPartnerValidationHelper.VerifyPartnerDelegate = @TServerLookup.TMPartner.VerifyPartner; TSharedFinanceValidationHelper.GetValidPostingDateRangeDelegate = @TServerLookup.TMFinance.GetCurrentPostingRangeDates; TSharedFinanceValidationHelper.GetValidPeriodDatesDelegate = @TServerLookup.TMFinance.GetCurrentPeriodDates; Connect(TAppSettingsManager.GetValue("AutoLogin"), TAppSettingsManager.GetValue("AutoLoginPasswd"), TAppSettingsManager.GetInt64("SiteKey")); }
/// connect to the server public static eLoginEnum Connect(string AConfigName, bool AThrowExceptionOnLoginFailure = true) { TUnhandledThreadExceptionHandler UnhandledThreadExceptionHandler; // Set up Handlers for 'UnhandledException' // Note: BOTH handlers are needed for a WinForms Application!!! AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionHandling.UnhandledExceptionHandler); UnhandledThreadExceptionHandler = new TUnhandledThreadExceptionHandler(); Application.ThreadException += new ThreadExceptionEventHandler(UnhandledThreadExceptionHandler.OnThreadException); new TAppSettingsManager(AConfigName); CommonNUnitFunctions.InitRootPath(); Catalog.Init(); TClientTasksQueue.ClientTasksInstanceType = typeof(TClientTaskInstance); TConnectionManagementBase.GConnectionManagement = new TConnectionManagement(); new TClientSettings(); TClientInfo.InitializeUnit(); TCacheableTablesManager.InitializeUnit(); // Set up Data Validation Delegates TSharedValidationHelper.SharedGetDataDelegate = @TServerLookup.TMCommon.GetData; TSharedPartnerValidationHelper.VerifyPartnerDelegate = @TServerLookup.TMPartner.VerifyPartner; TSharedPartnerValidationHelper.PartnerIsLinkedToCCDelegate = @TServerLookup.TMPartner.PartnerIsLinkedToCC; TSharedPartnerValidationHelper.PartnerOfTypeCCIsLinkedDelegate = @TServerLookup.TMPartner.PartnerOfTypeCCIsLinked; TSharedPartnerValidationHelper.PartnerHasCurrentGiftDestinationDelegate = @TServerLookup.TMPartner.PartnerHasCurrentGiftDestination; TSharedFinanceValidationHelper.GetValidPostingDateRangeDelegate = @TServerLookup.TMFinance.GetCurrentPostingRangeDates; TSharedFinanceValidationHelper.GetValidPeriodDatesDelegate = @TServerLookup.TMFinance.GetCurrentPeriodDates; // Ensure we throw away the previous client session cookies! THTTPUtils.ResetSession(); eLoginEnum Result = Connect(TAppSettingsManager.GetValue("AutoLogin"), TAppSettingsManager.GetValue("AutoLoginPasswd"), TAppSettingsManager.GetInt64("SiteKey")); if ((Result != eLoginEnum.eLoginSucceeded) && AThrowExceptionOnLoginFailure) { throw new Exception("login failed"); } return(Result); }
/// <summary> /// Perform necessary initializations of Classes /// </summary> /// <returns>void</returns> private static void InitialiseClasses() { TClientInfo.InitializeUnit(); TCacheableTablesManager.InitializeUnit(); new TIconCache(); // Set up Delegates for forwarding of calls for security-related Exceptions ExceptionHandling.ProcessSecurityAccessDeniedException = TMessages.MsgSecurityException; TUnhandledThreadExceptionHandler.ProcessSecurityAccessDeniedException = TMessages.MsgSecurityException; // Set up Delegates for forwarding of calls to Screens in various Assemblies TCommonScreensForwarding.OpenPartnerFindScreen = @TPartnerFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenPartnerFindByBankDetailsScreen = @TPartnerFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenBankFindDialog = @TBankFindDialogManager.OpenModalForm; TCommonScreensForwarding.OpenConferenceFindScreen = @TConferenceFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenEventFindScreen = @TEventFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenExtractFindScreen = @TExtractFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenExtractMasterScreen = @TExtractMasterScreenManager.OpenForm; TCommonScreensForwarding.OpenDonorRecipientHistoryScreen = @TDonorRecipientHistoryScreenManager.OpenForm; TCommonScreensForwarding.OpenPartnerEditScreen = @TPartnerEditScreenManager.OpenForm; TCommonScreensForwarding.OpenExtractMasterScreenHidden = @TExtractMasterScreenManager.OpenFormHidden; TCommonScreensForwarding.OpenRangeFindScreen = @TPostcodeRangeSetupManager.OpenModalForm; TCommonScreensForwarding.OpenOccupationCodeFindScreen = @TOccupationCodeSetupManager.OpenModalForm; TCommonScreensForwarding.OpenGetMergeDataDialog = @TGetMergeDataManager.OpenModalForm; TCommonScreensForwarding.OpenPrintPartnerDialog = @TPrintPartnerModal.OpenModalForm; // Set up Delegate for the opening of Forms from the Main Menu Ict.Common.Controls.TLstTasks.OpenNewOrExistingForm = @Ict.Petra.Client.CommonForms.TFormsList.OpenNewOrExistingForm; // Set up Delegate for the retrieval of the list of Currencies from the Cache Ict.Common.Controls.TTxtCurrencyTextBox.RetrieveCurrencyList = @Ict.Petra.Client.CommonControls.TControlExtensions.RetrieveCurrencyList; // Set up Delegate for the set-up of various Colours of all SourceGrid DataGrid instances from UserDefaults Ict.Common.Controls.TSgrdDataGrid.SetColourInformation = @SetDataGridColoursFromUserDefaults; // Set up Delegate for the set-up of various Colours of all Filter and Find instances from UserDefaults Ict.Petra.Client.CommonControls.TUcoFilterAndFind.SetColourInformation = @SetFilterFindColoursFromUserDefaults; // Set up Data Validation Delegates TSharedValidationHelper.SharedGetDataDelegate = @TServerLookup.TMCommon.GetData; TSharedValidationControlHelper.SharedGetDateVerificationResultDelegate = @TtxtPetraDate.GetDateVerificationResult; TSharedPartnerValidationHelper.VerifyPartnerDelegate = @TServerLookup.TMPartner.VerifyPartner; TSharedFinanceValidationHelper.GetValidPostingDateRangeDelegate = @TServerLookup.TMFinance.GetCurrentPostingRangeDates; TSharedFinanceValidationHelper.GetValidPeriodDatesDelegate = @TServerLookup.TMFinance.GetCurrentPeriodDates; // Set up Delegates for retrieval of cacheable tables when called from Shared directories on client side TSharedDataCache.TMCommon.GetCacheableCommonTableDelegate = @TDataCache.TMCommon.GetCacheableCommonTable; TSharedDataCache.TMFinance.GetCacheableFinanceTableDelegate = @TDataCache.TMFinance.GetCacheableFinanceTable; TSharedDataCache.TMPartner.GetCacheablePartnerTableDelegate = @TDataCache.TMPartner.GetCacheablePartnerTable; TSharedDataCache.TMPartner.GetCacheableMailingTableDelegate = @TDataCache.TMPartner.GetCacheableMailingTable; TSharedDataCache.TMPartner.GetCacheableSubscriptionsTableDelegate = @TDataCache.TMPartner.GetCacheableSubscriptionsTable; TSharedDataCache.TMPersonnel.GetCacheablePersonnelTableDelegate = @TDataCache.TMPersonnel.GetCacheablePersonnelTable; TSharedDataCache.TMPersonnel.GetCacheableUnitsTableDelegate = @TDataCache.TMPersonnel.GetCacheableUnitsTable; TSharedDataCache.TMConference.GetCacheableConferenceTableDelegate = @TDataCache.TMConference.GetCacheableConferenceTable; TSharedDataCache.TMSysMan.GetCacheableSysManTableDelegate = @TDataCache.TMSysMan.GetCacheableSysManTable; // I18N: assign proper font which helps to read asian characters // this is the first place where it is called, and we need to initialize the TAppSettingsManager TAppSettingsManager.InitFontI18N(); TCommonControlsHelper.SetInactiveIdentifier += delegate { return(SharedConstants.INACTIVE_VALUE_WITH_QUALIFIERS); }; }
/// <summary> /// Initialises Logging and parses Server settings from different sources. /// </summary> public TServerManager() : base() { // Create SystemDefaults Cache TSystemDefaultsCache.GSystemDefaultsCache = new TSystemDefaultsCache(); DomainManager.GetSiteKeyFromSystemDefaultsCacheDelegate = @TSystemDefaultsCache.GSystemDefaultsCache.GetSiteKeyDefault; TCacheableTablesManager.InitializeUnit(); TCacheableTablesManager.GCacheableTablesManager = new TCacheableTablesManager(new TDelegateSendClientTask(TClientManager.QueueClientTask)); Assembly SysManAssembly = Assembly.Load("Ict.Petra.Server.lib.MSysMan"); Type ImportExportType = SysManAssembly.GetType("Ict.Petra.Server.MSysMan.ImportExport.TImportExportManager"); FImportExportManager = (IImportExportManager)Activator.CreateInstance(ImportExportType, (BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod), null, null, null); Assembly DBUpgradesAssembly = Assembly.Load("Ict.Petra.Server.lib.MSysMan.DBUpgrades"); Type DatabaseUpgradeType = DBUpgradesAssembly.GetType("Ict.Petra.Server.MSysMan.DBUpgrades.TDBUpgrades"); FDBUpgrades = (IDBUpgrades)Activator.CreateInstance(DatabaseUpgradeType, (BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod), null, null, null); Type UserManagement = SysManAssembly.GetType("Ict.Petra.Server.MSysMan.Maintenance.UserManagement.TUserManager"); FUserManager = (IUserManager)Activator.CreateInstance(UserManagement, (BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod), null, null, null); TClientManager.InitializeStaticVariables(TSystemDefaultsCache.GSystemDefaultsCache, FUserManager, new TErrorLog(), new TLoginLog(), new TMaintenanceLogonMessage(), ExceptionHandling_DBConnectionBrokenCallback); // // Set up 'Timed Processing' // TTimedProcessing.DailyStartTime24Hrs = TAppSettingsManager.GetValue("Server.Processing.DailyStartTime24Hrs", "00:30"); if (TAppSettingsManager.GetBoolean("Server.Processing.PartnerReminders.Enabled", true)) { Assembly PartnerProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MPartner.processing"); Type PartnerReminderClass = PartnerProcessingAssembly.GetType("Ict.Petra.Server.MPartner.Processing.TProcessPartnerReminders"); TTimedProcessing.AddProcessingJob( "TProcessPartnerReminders", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), PartnerReminderClass, "Process")); } if (TAppSettingsManager.GetBoolean("Server.Processing.AutomatedIntranetExport.Enabled", false)) { Assembly CommonProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MCommon.processing"); Type IntranetExportClass = CommonProcessingAssembly.GetType("Ict.Petra.Server.MCommon.Processing.TProcessAutomatedIntranetExport"); TTimedProcessing.AddProcessingJob( "TProcessAutomatedIntranetExport", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), IntranetExportClass, "Process")); } if (TAppSettingsManager.GetBoolean("Server.Processing.DataChecks.Enabled", false)) { Assembly CommonProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MCommon.processing"); Type ProcessDataChecksClass = CommonProcessingAssembly.GetType("Ict.Petra.Server.MCommon.Processing.TProcessDataChecks"); TTimedProcessing.AddProcessingJob( "TProcessDataChecks", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), ProcessDataChecksClass, "Process")); } }
/// <summary> /// Initialises Logging and parses Server settings from different sources. /// </summary> public TServerManager() : base() { // Create SystemDefaults Cache TSystemDefaultsCache.GSystemDefaultsCache = new TSystemDefaultsCache(); DomainManager.GetSiteKeyFromSystemDefaultsCacheDelegate = @TSystemDefaultsCache.GSystemDefaultsCache.GetSiteKeyDefault; TCacheableTablesManager.InitializeUnit(); TCacheableTablesManager.GCacheableTablesManager = new TCacheableTablesManager(new TDelegateSendClientTask(TClientManager.QueueClientTask)); Assembly SysManAssembly = Assembly.Load("Ict.Petra.Server.lib.MSysMan"); Type ImportExportType = SysManAssembly.GetType("Ict.Petra.Server.MSysMan.ImportExport.TImportExportManager"); FImportExportManager = (IImportExportManager)Activator.CreateInstance(ImportExportType, (BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod), null, null, null); Assembly DBUpgradesAssembly = Assembly.Load("Ict.Petra.Server.lib.MSysMan.DBUpgrades"); Type DatabaseUpgradeType = DBUpgradesAssembly.GetType("Ict.Petra.Server.MSysMan.DBUpgrades.TDBUpgrades"); FDBUpgrades = (IDBUpgrades)Activator.CreateInstance(DatabaseUpgradeType, (BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod), null, null, null); Type UserManagement = SysManAssembly.GetType("Ict.Petra.Server.MSysMan.Maintenance.UserManagement.TUserManager"); FUserManager = (IUserManager)Activator.CreateInstance(UserManagement, (BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod), null, null, null); TClientManager.InitializeStaticVariables(TSystemDefaultsCache.GSystemDefaultsCache, FUserManager, new TErrorLog(), new TLoginLog(), new TMaintenanceLogonMessage(), ExceptionHandling_DBConnectionBrokenCallback); // Set up the SYSADMIN user (#5650). // (This is required for all SubmitChanges method calls in the server's main AppDomain because // that Method references UserInfo.GUserInfo) // When using this with the Web Services, this does not apply to the threads for each session. TPetraIdentity PetraIdentity = new TPetraIdentity( "SYSADMIN", "", "", "", "", DateTime.MinValue, DateTime.MinValue, DateTime.MinValue, 0, -1, -1, false, false, false); TPetraPrincipal Principal = new TPetraPrincipal(PetraIdentity, null); UserInfo.GUserInfo = Principal; // // Set up 'Timed Processing' // TTimedProcessing.DailyStartTime24Hrs = TAppSettingsManager.GetValue("Server.Processing.DailyStartTime24Hrs", "00:30"); if (TAppSettingsManager.GetBoolean("Server.Processing.PartnerReminders.Enabled", true)) { Assembly PartnerProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MPartner.processing"); Type PartnerReminderClass = PartnerProcessingAssembly.GetType("Ict.Petra.Server.MPartner.Processing.TProcessPartnerReminders"); TTimedProcessing.AddProcessingJob( "TProcessPartnerReminders", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), PartnerReminderClass, "Process")); } if (TAppSettingsManager.GetBoolean("Server.Processing.AutomatedIntranetExport.Enabled", false)) { Assembly CommonProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MCommon.processing"); Type IntranetExportClass = CommonProcessingAssembly.GetType("Ict.Petra.Server.MCommon.Processing.TProcessAutomatedIntranetExport"); TTimedProcessing.AddProcessingJob( "TProcessAutomatedIntranetExport", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), IntranetExportClass, "Process")); } if (TAppSettingsManager.GetBoolean("Server.Processing.DataChecks.Enabled", false)) { Assembly CommonProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MCommon.processing"); Type ProcessDataChecksClass = CommonProcessingAssembly.GetType("Ict.Petra.Server.MCommon.Processing.TProcessDataChecks"); TTimedProcessing.AddProcessingJob( "TProcessDataChecks", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), ProcessDataChecksClass, "Process")); } }
/// <summary> /// Perform necessary initializations of Classes /// </summary> /// <returns>void</returns> private static void InitialiseClasses() { TClientInfo.InitializeUnit(); TCacheableTablesManager.InitializeUnit(); new TIconCache(); // Set up Delegates for forwarding of calls for security-related Exceptions ExceptionHandling.ProcessSecurityAccessDeniedException = TMessages.MsgSecurityException; TUnhandledThreadExceptionHandler.ProcessSecurityAccessDeniedException = TMessages.MsgSecurityException; Ict.Common.Controls.TCommonControlsSecurity.SecurityAccessDeniedMessage = TMessages.MsgSecurityException; // Delegate for an extended message box TClientTaskInstance.ShowExtendedMessageBox = @TFrmExtendedMessageBoxManager.Create; // Set up Delegates for forwarding of calls to Screens in various Assemblies TCommonScreensForwarding.OpenPartnerFindScreen = @TPartnerFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenPartnerFindByBankDetailsScreen = @TPartnerFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenBankFindDialog = @TBankFindDialogManager.OpenModalForm; TCommonScreensForwarding.OpenConferenceFindScreen = @TConferenceFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenEventFindScreen = @TEventFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenExtractFindScreen = @TExtractFindScreenManager.OpenModalForm; TCommonScreensForwarding.OpenExtractMasterScreen = @TExtractMasterScreenManager.OpenForm; TCommonScreensForwarding.OpenDonorRecipientHistoryScreen = @TDonorRecipientHistoryScreenManager.OpenForm; TCommonScreensForwarding.OpenPartnerEditScreen = @TPartnerEditScreenManager.OpenForm; TCommonScreensForwarding.OpenExtractMasterScreenHidden = @TExtractMasterScreenManager.OpenFormHidden; TCommonScreensForwarding.OpenRangeFindScreen = @TPostcodeRangeSetupManager.OpenModalForm; TCommonScreensForwarding.OpenOccupationCodeFindScreen = @TOccupationCodeSetupManager.OpenModalForm; TCommonScreensForwarding.OpenGetMergeDataDialog = @TGetMergeDataManager.OpenModalForm; TCommonScreensForwarding.OpenPrintPartnerDialog = @TPrintPartnerModal.OpenModalForm; TCommonScreensForwarding.TaxDeductiblePctAdjust = @TFrmGiftTaxDeductiblePctAdjustment.TaxDeductiblePctAdjustment; TCommonScreensForwarding.OpenPrintUnitHierarchy = @TPrintUnitHierarchy.OpenModalForm; // Set up Delegate for the opening of Forms from the Main Menu Ict.Common.Controls.TLstTasks.OpenNewOrExistingForm = @Ict.Petra.Client.CommonForms.TFormsList.OpenNewOrExistingForm; // Set up Delegate for the retrieval of the list of Currencies from the Cache Ict.Common.Controls.TTxtCurrencyTextBox.RetrieveCurrencyList = @Ict.Petra.Client.CommonControls.TControlExtensions.RetrieveCurrencyList; // Set up Delegate for checking the real module access permissions (rather than the ones in the XML) Ict.Common.Controls.TCommonControlsSecurity.CheckUserModulePermissions = @Ict.Petra.Shared.Security.TSecurityChecks.CheckUserModulePermissions; // Set up Delegate for the retrieval of the user defaults Ict.Common.Controls.TTxtNumericTextBox.RetrieveUserDefaultBoolean = @Ict.Petra.Client.CommonControls.TControlExtensions.RetrieveUserDefaultBoolean; Ict.Common.TypeConverter.TCurrencyConverter.RetrieveUserDefaultBoolean = @Ict.Petra.Client.CommonControls.TControlExtensions.RetrieveUserDefaultBoolean; Ict.Common.TypeConverter.TDecimalConverter.RetrieveUserDefaultBoolean = @Ict.Petra.Client.CommonControls.TControlExtensions.RetrieveUserDefaultBoolean; Ict.Common.IO.TTextFileEncoding.RetrieveUserDefaultBoolean = @Ict.Petra.Client.CommonControls.TControlExtensions.RetrieveUserDefaultBoolean; // Set up Delegate for the set-up of various Colours of all SourceGrid DataGrid instances from UserDefaults Ict.Common.Controls.TSgrdDataGrid.SetColourInformation = @SetDataGridColoursFromUserDefaults; // Set up Delegate for the set-up of various Colours of all Filter and Find instances from UserDefaults Ict.Petra.Client.CommonControls.TUcoFilterAndFind.SetColourInformation = @SetFilterFindColoursFromUserDefaults; // Set up Data Validation Delegates TSharedValidationHelper.SharedGetDataDelegate = @TServerLookup.TMCommon.GetData; TSharedValidationControlHelper.SharedGetDateVerificationResultDelegate = @TtxtPetraDate.GetDateVerificationResult; TSharedPartnerValidationHelper.VerifyPartnerDelegate = @TServerLookup.TMPartner.VerifyPartner; TSharedPartnerValidationHelper.PartnerHasActiveStatusDelegate = @TServerLookup.TMPartner.PartnerHasActiveStatus; TSharedPartnerValidationHelper.PartnerIsLinkedToCCDelegate = @TServerLookup.TMPartner.PartnerIsLinkedToCC; TSharedPartnerValidationHelper.PartnerOfTypeCCIsLinkedDelegate = @TServerLookup.TMPartner.PartnerOfTypeCCIsLinked; TSharedPartnerValidationHelper.PartnerHasCurrentGiftDestinationDelegate = @TServerLookup.TMPartner.PartnerHasCurrentGiftDestination; TSharedFinanceValidationHelper.GetValidPostingDateRangeDelegate = @TServerLookup.TMFinance.GetCurrentPostingRangeDates; TSharedFinanceValidationHelper.GetValidPeriodDatesDelegate = @TServerLookup.TMFinance.GetCurrentPeriodDates; // Set up Delegates for retrieval of cacheable tables when called from Shared directories on client side TSharedDataCache.TMCommon.GetCacheableCommonTableDelegate = @TDataCache.TMCommon.GetCacheableCommonTable; TSharedDataCache.TMFinance.GetCacheableFinanceTableDelegate = @TDataCache.TMFinance.GetCacheableFinanceTable; TSharedDataCache.TMPartner.GetCacheablePartnerTableDelegate = @TDataCache.TMPartner.GetCacheablePartnerTable; TSharedDataCache.TMPartner.GetCacheableMailingTableDelegate = @TDataCache.TMPartner.GetCacheableMailingTable; TSharedDataCache.TMPartner.GetCacheableSubscriptionsTableDelegate = @TDataCache.TMPartner.GetCacheableSubscriptionsTable; TSharedDataCache.TMPartner.GetPartnerCalculationsSystemCategoryAttributeTypesDelegate = @Ict.Petra.Shared.MPartner.Calculations.DetermineSystemCategoryAttributeTypes; TSharedDataCache.TMPartner.GetPartnerCalculationsPartnerContactDetailAttributeTypesDelegate = @Ict.Petra.Shared.MPartner.Calculations.DeterminePartnerContactDetailAttributeTypes; TSharedDataCache.TMPartner.GetPartnerCalculationsEmailPartnerAttributeTypesDelegate = @Ict.Petra.Shared.MPartner.Calculations.DetermineEmailPartnerAttributeTypes; TSharedDataCache.TMPartner.GetPartnerCalculationsPhonePartnerAttributeTypesDelegate = @Ict.Petra.Shared.MPartner.Calculations.DeterminePhonePartnerAttributeTypes; TSharedDataCache.TMPersonnel.GetCacheablePersonnelTableDelegate = @TDataCache.TMPersonnel.GetCacheablePersonnelTable; TSharedDataCache.TMPersonnel.GetCacheableUnitsTableDelegate = @TDataCache.TMPersonnel.GetCacheableUnitsTable; TSharedDataCache.TMConference.GetCacheableConferenceTableDelegate = @TDataCache.TMConference.GetCacheableConferenceTable; TSharedDataCache.TMSysMan.GetCacheableSysManTableDelegate = @TDataCache.TMSysMan.GetCacheableSysManTable; // I18N: assign proper font which helps to read asian characters // this is the first place where it is called, and we need to initialize the TAppSettingsManager TAppSettingsManager.InitFontI18N(); TCommonControlsHelper.SetInactiveIdentifier += delegate { return(SharedConstants.INACTIVE_VALUE_WITH_QUALIFIERS); }; TSmtpSender.GetSmtpSettings = @TServerLookup.TMSysMan.GetServerSmtpSettings; }
/// <summary> /// Initialises Logging and parses Server settings from different sources. /// </summary> public TServerManager() : base() { // Create SystemDefaults Cache FSystemDefaultsCache = new TSystemDefaultsCache(); TRemoteLoader.CLIENTDOMAIN_DLLNAME = "Ict.Petra.Server.app.Core"; TRemoteLoader.CLIENTDOMAIN_CLASSNAME = "Ict.Petra.Server.App.Core.TClientDomainManager"; TClientAppDomainConnectionBase.ClientAppDomainConnectionType = typeof(TClientAppDomainConnection); TCacheableTablesManager.InitializeUnit(); TCacheableTablesManager.GCacheableTablesManager = new TCacheableTablesManager(new TDelegateSendClientTask(TClientManager.QueueClientTask)); Assembly SysManAssembly = Assembly.Load("Ict.Petra.Server.lib.MSysMan"); Type ImportExportType = SysManAssembly.GetType("Ict.Petra.Server.MSysMan.ImportExport.TImportExportManager"); FImportExportManager = (IImportExportManager)Activator.CreateInstance(ImportExportType, (BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod), null, null, null); Type UserManagement = SysManAssembly.GetType("Ict.Petra.Server.MSysMan.Maintenance.UserManagement.TUserManager"); FUserManager = (IUserManager)Activator.CreateInstance(UserManagement, (BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod), null, null, null); TClientManager.InitializeStaticVariables(FSystemDefaultsCache, TCacheableTablesManager.GCacheableTablesManager, FUserManager, new TErrorLog(), new TMaintenanceLogonMessage(), new TClientAppDomainConnection()); TTimedProcessing.DailyStartTime24Hrs = TAppSettingsManager.GetValue("Server.Processing.DailyStartTime24Hrs", "00:30"); if (TAppSettingsManager.GetBoolean("Server.Processing.PartnerReminders.Enabled", true)) { Assembly PartnerProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MPartner.processing"); Type PartnerReminderClass = PartnerProcessingAssembly.GetType("Ict.Petra.Server.MPartner.Processing.TProcessPartnerReminders"); TTimedProcessing.AddProcessingJob( "TProcessPartnerReminders", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), PartnerReminderClass, "Process")); } if (TAppSettingsManager.GetBoolean("Server.Processing.AutomatedIntranetExport.Enabled", false)) { Assembly CommonProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MCommon.processing"); Type IntranetExportClass = CommonProcessingAssembly.GetType("Ict.Petra.Server.MCommon.Processing.TProcessAutomatedIntranetExport"); TTimedProcessing.AddProcessingJob( "TProcessAutomatedIntranetExport", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), IntranetExportClass, "Process")); } if (TAppSettingsManager.GetBoolean("Server.Processing.DataChecks.Enabled", false)) { Assembly CommonProcessingAssembly = Assembly.Load("Ict.Petra.Server.lib.MCommon.processing"); Type ProcessDataChecksClass = CommonProcessingAssembly.GetType("Ict.Petra.Server.MCommon.Processing.TProcessDataChecks"); TTimedProcessing.AddProcessingJob( "TProcessDataChecks", (TTimedProcessing.TProcessDelegate)Delegate.CreateDelegate( typeof(TTimedProcessing.TProcessDelegate), ProcessDataChecksClass, "Process")); } }