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);
            }
        }
Example #2
0
 public DebugTranslatorHelper(TranslatorHelper currentHelper)
 {
     _currentHelper = currentHelper;
 }