private void InitializeApplication(HttpContext context) { try { lock (LockThis) { if (!_init) { string absoluteUri = Alphamosaik.Common.SharePoint.Library.Utilities.GetAbsoluteUri(context.ApplicationInstance); if (_license == null) { // We already use around 60 Regex.CacheSize = 90; string value = ConfigStore.Instance.GetValue("Oceanik", Environment.MachineName, absoluteUri); if (string.IsNullOrEmpty(value)) { byte[] bytes = Encoding.ASCII.GetBytes(ServerPrivateKey); ConfigStore.Instance.AddValue(Environment.MachineName, "Oceanik", "ServerPrivateKey", string.Empty, "license.key", bytes, false, absoluteUri); UpdateOldLicensing(absoluteUri); } string license = ConfigStore.Instance.GetSpecificStringAttachment("Oceanik", Environment.MachineName, "license.dat", absoluteUri); _license = new License(); if (!string.IsNullOrEmpty(ConfigStore.Instance.GetValue("Oceanik", "ActivateStatisticsLogDetails", absoluteUri))) { _activateStatisticsLogDetails = Convert.ToInt32(ConfigStore.Instance.GetValue("Oceanik", "ActivateStatisticsLogDetails", absoluteUri)); } if (!string.IsNullOrEmpty(license)) { _license = new License(ServerPrivateKey, license); } string automaticTranslationPlugin = ConfigStore.Instance.GetValue("Oceanik", "automaticTranslationPlugin", absoluteUri); if (!string.IsNullOrEmpty(automaticTranslationPlugin) && HttpRuntime.Cache[OceanikAutomaticTranslation] == null) { _automaticTranslationPlugin = PlugInUtilities.GetPlugin <IAutomaticTranslation>(automaticTranslationPlugin); if (_automaticTranslationPlugin != null) { HttpRuntime.Cache.Add(OceanikAutomaticTranslation, _automaticTranslationPlugin, null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null); } } } if ((_automaticTranslationPlugin == null) && (HttpRuntime.Cache[OceanikAutomaticTranslation] != null)) { _automaticTranslationPlugin = (IAutomaticTranslation)HttpRuntime.Cache[OceanikAutomaticTranslation]; } _translatorHelper = _activateStatisticsLogDetails > 0 ? new StatisticsStandardTranslatorHelper() : new StandardTranslatorHelper(); _httpApplicationEvents = new HttpApplicationEvents(_translatorHelper, _license, _automaticTranslationPlugin); if (_activateStatisticsLogDetails > 0) { _httpApplicationEvents = new StatisticsHttpApplicationEvents(_httpApplicationEvents, _activateStatisticsLogDetails, absoluteUri); } _init = true; } } } catch (Exception ex) { Utilities.LogException("Error in Oceanik.Init: " + ex.Message, EventLogEntryType.Warning); } }
public StatisticsHttpApplicationEvents(IHttpApplicationEvents httpApplicationEvents, int activateStatisticsLogDetails, string absoluteUri) { _httpApplicationEvents = httpApplicationEvents; _activateStatisticsLogDetails = activateStatisticsLogDetails; _absoluteUri = absoluteUri; }