public bool SavePackageSettings(PackageSettingsDto packageSettings, out string errorMessage)
        {
            errorMessage = string.Empty;

            try
            {
                string value;
                var    changed      = false;
                var    languagePack = LanguagePackController.GetLanguagePackByPackage(packageSettings.PackageId);
                if (packageSettings.EditorActions.TryGetValue("languageId", out value) &&
                    !string.IsNullOrEmpty(value) && value != languagePack.LanguageID.ToString())
                {
                    languagePack.LanguageID = Convert.ToInt32(value);
                    changed = true;
                }

                if (changed)
                {
                    LanguagePackController.SaveLanguagePack(languagePack);
                }
                return(true);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                errorMessage = ex.Message;
                return(false);
            }
        }
 public override void Install()
 {
     try
     {
         InstalledLanguagePack = LanguagePackController.GetLanguagePackByPackage(Package.PackageID);
         if (InstalledLanguagePack != null)
         {
             LanguagePack.LanguagePackID = InstalledLanguagePack.LanguagePackID;
         }
         TempLanguage = Localization.Localization.GetLocale(Language.Code);
         if (TempLanguage != null)
         {
             Language.LanguageID = TempLanguage.LanguageID;
         }
         if (LanguagePack.PackageType == Localization.LanguagePackType.Core)
         {
             Localization.Localization.SaveLanguage(Language);
         }
         LanguagePack.PackageID  = Package.PackageID;
         LanguagePack.LanguageID = Language.LanguageID;
         LanguagePackController.SaveLanguagePack(LanguagePack);
         Log.AddInfo(string.Format(Util.LANGUAGE_Registered, Language.Text));
         base.Install();
         Completed = true;
     }
     catch (Exception ex)
     {
         Log.AddFailure(ex);
     }
 }
Esempio n. 3
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// The Install method installs the language component
        /// </summary>
        /// <history>
        ///     [cnurse]	02/11/2008  created
        /// </history>
        /// -----------------------------------------------------------------------------
        public override void Install()
        {
            if (LanguagePackType == LanguagePackType.Core || LanguagePack.DependentPackageID > 0)
            {
                try
                {
                    //Attempt to get the LanguagePack
                    InstalledLanguagePack = LanguagePackController.GetLanguagePackByPackage(Package.PackageID);
                    if (InstalledLanguagePack != null)
                    {
                        LanguagePack.LanguagePackID = InstalledLanguagePack.LanguagePackID;
                    }

                    //Attempt to get the Locale
                    TempLanguage = LocaleController.Instance.GetLocale(Language.Code);
                    if (TempLanguage != null)
                    {
                        Language.LanguageId = TempLanguage.LanguageId;
                    }
                    if (LanguagePack.PackageType == LanguagePackType.Core)
                    {
                        //Update language
                        Localization.Localization.SaveLanguage(Language);
                    }
                    var _settings = PortalController.GetCurrentPortalSettings();
                    if (_settings != null)
                    {
                        Locale enabledLanguage;
                        if (!LocaleController.Instance.GetLocales(_settings.PortalId).TryGetValue(Language.Code, out enabledLanguage))
                        {
                            //Add language to portal
                            Localization.Localization.AddLanguageToPortal(_settings.PortalId, Language.LanguageId, true);
                        }
                    }

                    //Set properties for Language Pack
                    LanguagePack.PackageID  = Package.PackageID;
                    LanguagePack.LanguageID = Language.LanguageId;

                    //Update LanguagePack
                    LanguagePackController.SaveLanguagePack(LanguagePack);

                    Log.AddInfo(string.Format(Util.LANGUAGE_Registered, Language.Text));

                    //install (copy the files) by calling the base class
                    base.Install();
                }
                catch (Exception ex)
                {
                    Log.AddFailure(ex);
                }
            }
            else
            {
                Completed = true;
                Skipped   = true;
            }
        }
 public override void UpdatePackage()
 {
     LanguagePack.LanguageID = int.Parse(cboLanguage.SelectedValue);
     if (LanguagePack.PackageType == LanguagePackType.Extension)
     {
         LanguagePack.DependentPackageID = int.Parse(cboPackage.SelectedValue);
     }
     LanguagePackController.SaveLanguagePack(LanguagePack);
 }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// The Install method installs the language component.
        /// </summary>
        /// -----------------------------------------------------------------------------
        public override void Install()
        {
            if (this.LanguagePackType == LanguagePackType.Core || this.LanguagePack.DependentPackageID > 0)
            {
                try
                {
                    // Attempt to get the LanguagePack
                    this.InstalledLanguagePack = LanguagePackController.GetLanguagePackByPackage(this.Package.PackageID);
                    if (this.InstalledLanguagePack != null)
                    {
                        this.LanguagePack.LanguagePackID = this.InstalledLanguagePack.LanguagePackID;
                    }

                    // Attempt to get the Locale
                    this.TempLanguage = LocaleController.Instance.GetLocale(this.Language.Code);
                    if (this.TempLanguage != null)
                    {
                        this.Language.LanguageId = this.TempLanguage.LanguageId;
                    }

                    if (this.LanguagePack.PackageType == LanguagePackType.Core)
                    {
                        // Update language
                        Localization.SaveLanguage(this.Language);
                    }

                    // Set properties for Language Pack
                    this.LanguagePack.PackageID  = this.Package.PackageID;
                    this.LanguagePack.LanguageID = this.Language.LanguageId;

                    // Update LanguagePack
                    LanguagePackController.SaveLanguagePack(this.LanguagePack);

                    this.Log.AddInfo(string.Format(Util.LANGUAGE_Registered, this.Language.Text));

                    // install (copy the files) by calling the base class
                    base.Install();
                }
                catch (Exception ex)
                {
                    this.Log.AddFailure(ex);
                }
            }
            else
            {
                this.Completed = true;
                this.Skipped   = true;
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Process legacy language package (that is based on manifest xml file)
        /// </summary>
        public static void ProcessLegacyLanguages()
        {
            string filePath = Globals.ApplicationMapPath + Localization.Localization.SupportedLocalesFile.Substring(1).Replace("/", "\\");

            if (File.Exists(filePath))
            {
                var doc = new XPathDocument(filePath);

                //Check for Browser and Url settings
                XPathNavigator browserNav = doc.CreateNavigator().SelectSingleNode("root/browserDetection");
                if (browserNav != null)
                {
                    HostController.Instance.Update("EnableBrowserLanguage", Util.ReadAttribute(browserNav, "enabled", false, null, Null.NullString, "true"));
                }
                XPathNavigator urlNav = doc.CreateNavigator().SelectSingleNode("root/languageInUrl");
                if (urlNav != null)
                {
                    HostController.Instance.Update("EnableUrlLanguage", Util.ReadAttribute(urlNav, "enabled", false, null, Null.NullString, "true"));
                }

                //Process each language
                foreach (XPathNavigator nav in doc.CreateNavigator().Select("root/language"))
                {
                    if (nav.NodeType != XPathNodeType.Comment)
                    {
                        var language = new Locale();
                        language.Text     = Util.ReadAttribute(nav, "name");
                        language.Code     = Util.ReadAttribute(nav, "key");
                        language.Fallback = Util.ReadAttribute(nav, "fallback");
                        //Save Language
                        Localization.Localization.SaveLanguage(language);
                        if (language.Code != Localization.Localization.SystemLocale)
                        {
                            //Create a Package
                            var package = new PackageInfo(new InstallerInfo())
                            {
                                Name         = language.Text,
                                FriendlyName = language.Text,
                                Description  = Null.NullString,
                                Version      = new Version(1, 0, 0),
                                PackageType  = "CoreLanguagePack",
                                License      = Util.PACKAGE_NoLicense
                            };

                            //Create a LanguagePackWriter
                            var packageWriter = new LanguagePackWriter(language, package);

                            //Save the manifest
                            package.Manifest = packageWriter.WriteManifest(true);

                            //Save Package
                            PackageController.Instance.SaveExtensionPackage(package);

                            var languagePack = new LanguagePackInfo
                            {
                                LanguageID         = language.LanguageId,
                                PackageID          = package.PackageID,
                                DependentPackageID = -2
                            };
                            LanguagePackController.SaveLanguagePack(languagePack);
                        }
                    }
                }
            }

            //Process Portal Locales files
            foreach (PortalInfo portal in PortalController.Instance.GetPortals())
            {
                int portalID = portal.PortalID;
                filePath = string.Format(Globals.ApplicationMapPath + Localization.Localization.ApplicationResourceDirectory.Substring(1).Replace("/", "\\") + "\\Locales.Portal-{0}.xml", portalID);

                if (File.Exists(filePath))
                {
                    var doc = new XPathDocument(filePath);

                    //Check for Browser and Url settings
                    XPathNavigator browserNav = doc.CreateNavigator().SelectSingleNode("locales/browserDetection");
                    if (browserNav != null)
                    {
                        PortalController.UpdatePortalSetting(portalID, "EnableBrowserLanguage", Util.ReadAttribute(browserNav, "enabled", false, null, Null.NullString, "true"));
                    }
                    XPathNavigator urlNav = doc.CreateNavigator().SelectSingleNode("locales/languageInUrl");
                    if (urlNav != null)
                    {
                        PortalController.UpdatePortalSetting(portalID, "EnableUrlLanguage", Util.ReadAttribute(urlNav, "enabled", false, null, Null.NullString, "true"));
                    }
                    foreach (Locale installedLanguage in LocaleController.Instance.GetLocales(Null.NullInteger).Values)
                    {
                        string code   = installedLanguage.Code;
                        bool   bFound = false;

                        //Check if this language is "inactive"
                        foreach (XPathNavigator inactiveNav in doc.CreateNavigator().Select("locales/inactive/locale"))
                        {
                            if (inactiveNav.Value == code)
                            {
                                bFound = true;
                                break;
                            }
                        }
                        if (!bFound)
                        {
                            //Language is enabled - add to portal
                            Localization.Localization.AddLanguageToPortal(portalID, installedLanguage.LanguageId, false);
                        }
                    }
                }
                else
                {
                    foreach (Locale installedLanguage in LocaleController.Instance.GetLocales(Null.NullInteger).Values)
                    {
                        //Language is enabled - add to portal
                        Localization.Localization.AddLanguageToPortal(portalID, installedLanguage.LanguageId, false);
                    }
                }
            }
        }
Esempio n. 7
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// wizNewExtension_NextButtonClick when the next Button is clicked.  It provides
        ///	a mechanism for cancelling the page change if certain conditions aren't met.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        ///     [cnurse]	08/25/2008	created
        /// </history>
        /// -----------------------------------------------------------------------------
        protected void wizNewExtension_NextButtonClick(object sender, WizardNavigationEventArgs e)
        {
            switch (e.CurrentStepIndex)
            {
            case 0:
                if (extensionForm.IsValid)
                {
                    var         newPackage = extensionForm.DataSource as PackageInfo;
                    PackageInfo tmpPackage = PackageController.Instance.GetExtensionPackage(Null.NullInteger, p => p.Name == newPackage.Name);
                    if (tmpPackage == null)
                    {
                        switch (Mode)
                        {
                        case "All":
                            newPackage.PackageType = cboExtensionType.SelectedValue;
                            break;

                        default:
                            newPackage.PackageType = Mode;
                            break;
                        }
                        PackageController.Instance.SaveExtensionPackage(newPackage);
                        PackageID = newPackage.PackageID;
                        Locale           locale;
                        LanguagePackInfo languagePack;
                        switch (newPackage.PackageType)
                        {
                        case "Auth_System":
                            //Create a new Auth System
                            var authSystem = new AuthenticationInfo
                            {
                                AuthenticationType = newPackage.Name,
                                IsEnabled          = Null.NullBoolean,
                                PackageID          = newPackage.PackageID
                            };
                            AuthenticationController.AddAuthentication(authSystem);
                            break;

                        case "Container":
                        case "Skin":
                            var skinPackage = new SkinPackageInfo
                            {
                                SkinName  = newPackage.Name,
                                PackageID = newPackage.PackageID,
                                SkinType  = newPackage.PackageType
                            };
                            SkinController.AddSkinPackage(skinPackage);
                            break;

                        case "CoreLanguagePack":
                            locale       = LocaleController.Instance.GetLocale(PortalController.Instance.GetCurrentPortalSettings().DefaultLanguage);
                            languagePack = new LanguagePackInfo
                            {
                                PackageID          = newPackage.PackageID,
                                LanguageID         = locale.LanguageId,
                                DependentPackageID = -2
                            };
                            LanguagePackController.SaveLanguagePack(languagePack);
                            break;

                        case "ExtensionLanguagePack":
                            locale       = LocaleController.Instance.GetLocale(PortalController.Instance.GetCurrentPortalSettings().DefaultLanguage);
                            languagePack = new LanguagePackInfo
                            {
                                PackageID          = newPackage.PackageID,
                                LanguageID         = locale.LanguageId,
                                DependentPackageID = Null.NullInteger
                            };
                            LanguagePackController.SaveLanguagePack(languagePack);
                            break;

                        case "Module":
                            //Create a new DesktopModule
                            var desktopModule = new DesktopModuleInfo
                            {
                                PackageID         = newPackage.PackageID,
                                ModuleName        = newPackage.Name,
                                FriendlyName      = newPackage.FriendlyName,
                                FolderName        = newPackage.Name,
                                Description       = newPackage.Description,
                                Version           = newPackage.Version.ToString(3),
                                SupportedFeatures = 0
                            };
                            int desktopModuleId = DesktopModuleController.SaveDesktopModule(desktopModule, false, true);
                            if (desktopModuleId > Null.NullInteger)
                            {
                                DesktopModuleController.AddDesktopModuleToPortals(desktopModuleId);
                            }
                            break;

                        case "SkinObject":
                            var skinControl = new SkinControlInfo {
                                PackageID = newPackage.PackageID, ControlKey = newPackage.Name
                            };
                            SkinControlController.SaveSkinControl(skinControl);
                            break;
                        }
                    }
                    else
                    {
                        e.Cancel         = true;
                        lblError.Text    = string.Format(Localization.GetString("DuplicateName", LocalResourceFile), newPackage.Name);
                        lblError.Visible = true;
                    }
                }
                if (PackageEditor != null && PackageID > Null.NullInteger)
                {
                    BindPackageEditor();
                }
                break;

            case 1:
                if (PackageEditor != null)
                {
                    PackageEditor.UpdatePackage();
                }
                break;

            case 2:
                if (ownerForm.IsValid)
                {
                    PackageController.Instance.SaveExtensionPackage(ownerForm.DataSource as PackageInfo);
                }
                Response.Redirect(Globals.NavigateURL(), true);
                break;
            }
        }
Esempio n. 8
0
        public static int AddPackage(PackageInfo package, bool includeDetail)
        {
            int packageID = provider.AddPackage(package.PortalID,
                                                package.Name,
                                                package.FriendlyName,
                                                package.Description,
                                                package.PackageType,
                                                package.Version.ToString(3),
                                                package.License,
                                                package.Manifest,
                                                package.Owner,
                                                package.Organization,
                                                package.Url,
                                                package.Email,
                                                package.ReleaseNotes,
                                                package.IsSystemPackage,
                                                UserController.GetCurrentUserInfo().UserID,
                                                package.FolderName,
                                                package.IconFile);
            var objEventLog = new EventLogController();

            objEventLog.AddLog(package, PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, "", EventLogController.EventLogType.PACKAGE_CREATED);
            if (includeDetail)
            {
                Locale           locale;
                LanguagePackInfo languagePack;
                switch (package.PackageType)
                {
                case "Auth_System":
                    //Create a new Auth System
                    var authSystem = new AuthenticationInfo();
                    authSystem.AuthenticationType = package.Name;
                    authSystem.IsEnabled          = Null.NullBoolean;
                    authSystem.PackageID          = packageID;
                    AuthenticationController.AddAuthentication(authSystem);
                    break;

                case "Container":
                case "Skin":
                    var skinPackage = new SkinPackageInfo();
                    skinPackage.SkinName  = package.Name;
                    skinPackage.PackageID = packageID;
                    skinPackage.SkinType  = package.PackageType;
                    SkinController.AddSkinPackage(skinPackage);
                    break;

                case "CoreLanguagePack":
                    locale                          = LocaleController.Instance.GetLocale(PortalController.GetCurrentPortalSettings().DefaultLanguage);
                    languagePack                    = new LanguagePackInfo();
                    languagePack.PackageID          = packageID;
                    languagePack.LanguageID         = locale.LanguageId;
                    languagePack.DependentPackageID = -2;
                    LanguagePackController.SaveLanguagePack(languagePack);
                    break;

                case "ExtensionLanguagePack":
                    locale                          = LocaleController.Instance.GetLocale(PortalController.GetCurrentPortalSettings().DefaultLanguage);
                    languagePack                    = new LanguagePackInfo();
                    languagePack.PackageID          = packageID;
                    languagePack.LanguageID         = locale.LanguageId;
                    languagePack.DependentPackageID = Null.NullInteger;
                    LanguagePackController.SaveLanguagePack(languagePack);
                    break;

                case "Module":
                    //Create a new DesktopModule
                    var desktopModule = new DesktopModuleInfo();
                    desktopModule.PackageID         = packageID;
                    desktopModule.ModuleName        = package.Name;
                    desktopModule.FriendlyName      = package.FriendlyName;
                    desktopModule.FolderName        = package.Name;
                    desktopModule.Description       = package.Description;
                    desktopModule.Version           = package.Version.ToString(3);
                    desktopModule.SupportedFeatures = 0;
                    int desktopModuleId = DesktopModuleController.SaveDesktopModule(desktopModule, false, true);
                    if (desktopModuleId > Null.NullInteger)
                    {
                        DesktopModuleController.AddDesktopModuleToPortals(desktopModuleId);
                    }
                    break;

                case "SkinObject":
                    var skinControl = new SkinControlInfo();
                    skinControl.PackageID  = packageID;
                    skinControl.ControlKey = package.Name;
                    SkinControlController.SaveSkinControl(skinControl);
                    break;
                }
            }

            DataCache.ClearPackagesCache(package.PortalID);
            return(packageID);
        }
Esempio n. 9
0
        public static void ProcessLegacyLanguages()
        {
            string filePath = Common.Globals.ApplicationMapPath + Localization.Localization.SupportedLocalesFile.Substring(1).Replace("/", "\\");

            if (File.Exists(filePath))
            {
                XPathDocument          doc        = new XPathDocument(filePath);
                HostSettingsController controller = new HostSettingsController();
                XPathNavigator         browserNav = doc.CreateNavigator().SelectSingleNode("root/browserDetection");
                if (browserNav != null)
                {
                    controller.UpdateHostSetting("EnableBrowserLanguage", Util.ReadAttribute(browserNav, "enabled", false, null, Null.NullString, "true"));
                }
                XPathNavigator urlNav = doc.CreateNavigator().SelectSingleNode("root/languageInUrl");
                if (urlNav != null)
                {
                    controller.UpdateHostSetting("EnableUrlLanguage", Util.ReadAttribute(urlNav, "enabled", false, null, Null.NullString, "true"));
                }
                foreach (XPathNavigator nav in doc.CreateNavigator().Select("root/language"))
                {
                    if (nav.NodeType != XPathNodeType.Comment)
                    {
                        Locale language = new Locale();
                        language.Text     = Util.ReadAttribute(nav, "name");
                        language.Code     = Util.ReadAttribute(nav, "key");
                        language.Fallback = Util.ReadAttribute(nav, "fallback");
                        if (language.Code != Localization.Localization.SystemLocale)
                        {
                            PackageInfo package = new PackageInfo(new InstallerInfo());
                            package.Name         = language.Text;
                            package.FriendlyName = language.Text;
                            package.Description  = Null.NullString;
                            package.Version      = new Version(1, 0, 0);
                            package.PackageType  = "CoreLanguagePack";
                            package.License      = Util.PACKAGE_NoLicense;
                            LanguagePackWriter packageWriter = new LanguagePackWriter(language, package);
                            package.Manifest = packageWriter.WriteManifest(true);
                            PackageController.SavePackage(package);
                            Localization.Localization.SaveLanguage(language);
                            LanguagePackInfo languagePack = new LanguagePackInfo();
                            languagePack.LanguageID         = language.LanguageID;
                            languagePack.PackageID          = package.PackageID;
                            languagePack.DependentPackageID = -2;
                            LanguagePackController.SaveLanguagePack(languagePack);
                        }
                    }
                }
            }
            foreach (PortalInfo portal in new PortalController().GetPortals())
            {
                int portalID = portal.PortalID;
                filePath = string.Format(Common.Globals.ApplicationMapPath + Localization.Localization.ApplicationResourceDirectory.Substring(1).Replace("/", "\\") + "\\Locales.Portal-{0}.xml", portalID.ToString());
                if (File.Exists(filePath))
                {
                    XPathDocument  doc        = new XPathDocument(filePath);
                    XPathNavigator browserNav = doc.CreateNavigator().SelectSingleNode("locales/browserDetection");
                    if (browserNav != null)
                    {
                        PortalController.UpdatePortalSetting(portalID, "EnableBrowserLanguage", Util.ReadAttribute(browserNav, "enabled", false, null, Null.NullString, "true"));
                    }
                    XPathNavigator urlNav = doc.CreateNavigator().SelectSingleNode("locales/languageInUrl");
                    if (urlNav != null)
                    {
                        PortalController.UpdatePortalSetting(portalID, "EnableUrlLanguage", Util.ReadAttribute(urlNav, "enabled", false, null, Null.NullString, "true"));
                    }
                    foreach (Locale installedLanguage in Localization.Localization.GetLocales(Null.NullInteger).Values)
                    {
                        string code   = installedLanguage.Code;
                        bool   bFound = false;
                        foreach (XPathNavigator inactiveNav in doc.CreateNavigator().Select("locales/inactive/locale"))
                        {
                            if (inactiveNav.Value == code)
                            {
                                bFound = true;
                                break;
                            }
                        }
                        if (!bFound)
                        {
                            Localization.Localization.AddLanguageToPortal(portalID, installedLanguage.LanguageID, false);
                        }
                    }
                }
                else
                {
                    foreach (Locale installedLanguage in Localization.Localization.GetLocales(Null.NullInteger).Values)
                    {
                        Localization.Localization.AddLanguageToPortal(portalID, installedLanguage.LanguageID, false);
                    }
                }
            }
        }