Example #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            StoreLanguage storelanguage = StoreLanguageRepository.GetSingle(id);

            try
            {
                StoreLanguageRepository.Delete(storelanguage);
                StoreLanguageRepository.Save();

                if (IsSuperAdmin)
                {
                    return(RedirectToAction("Index", new { storeId = storelanguage.StoreId }));
                }
                else
                {
                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Unable to delete it:" + storelanguage);
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
            }

            return(View(storelanguage));
        }
Example #2
0
        /// <summary>
        ///     Converts a StoreLanguage to a Steam accepted API language code
        /// </summary>
        /// <param name="language">Language to convert</param>
        /// <returns>Steam Store API language code</returns>
        public static string GetStoreLanguage(StoreLanguage language)
        {
            string storeLanguage;

            switch (language)
            {
            case StoreLanguage.ChineseSimplified:
                storeLanguage = "schinese";

                break;

            case StoreLanguage.ChineseTraditional:
                storeLanguage = "tchinese";

                break;

            case StoreLanguage.Korean:
                storeLanguage = "koreana";

                break;

            case StoreLanguage.PortugueseBrasil:
                storeLanguage = "brazilian";

                break;

            default:
                storeLanguage = language.ToString();

                break;
            }

            return(storeLanguage.ToLower());
        }
Example #3
0
        /// <summary>
        ///     Returns the CultureInfo from the specified StoreLanguage.
        /// </summary>
        /// <param name="language">
        ///     Language to get the matching culture from.
        /// </param>
        /// <returns>
        ///     CultureInfo of the specified StoreLanguage.
        /// </returns>
        /// <remarks>
        ///     Based on the "Web API language code" column:
        ///     https://partner.steamgames.com/doc/store/localization
        /// </remarks>
        public static CultureInfo GetCultureInfo(StoreLanguage language)
        {
            CultureInfo cultureInfo;

            switch (language)
            {
            case StoreLanguage.ChineseSimplified:
                cultureInfo = new CultureInfo("zh-CN");

                break;

            case StoreLanguage.ChineseTraditional:
                cultureInfo = new CultureInfo("zh-TW");

                break;

            case StoreLanguage.PortugueseBrasil:
                cultureInfo = new CultureInfo("pt-BR");

                break;

            default:
                cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures).First(c => c.EnglishName == language.ToString());

                break;
            }

            return(cultureInfo);
        }
Example #4
0
        public void Load(string path, bool compress)
        {
            Logger.Info(GlobalStrings.GameDB_LoadingGameDBFrom, path);
            XmlDocument doc = new XmlDocument();

            Stream stream = null;

            try
            {
                stream = new FileStream(path, FileMode.Open);
                if (compress)
                {
                    stream = new GZipStream(stream, CompressionMode.Decompress);
                }

                doc.Load(stream);

                Logger.Info(GlobalStrings.GameDB_GameDBXMLParsed);
                Games.Clear();
                ClearAggregates();

                XmlNode gameListNode = doc.SelectSingleNode("/" + XmlName_RootNode);

                int fileVersion = XmlUtil.GetIntFromNode(gameListNode[XmlName_Version], 0);

                LastHltbUpdate = XmlUtil.GetIntFromNode(gameListNode[XmlName_LastHltbUpdate], 0);

                dbLanguage = (StoreLanguage)Enum.Parse(typeof(StoreLanguage), XmlUtil.GetStringFromNode(gameListNode[XmlName_dbLanguage], "en"), true);

                if (fileVersion == 1)
                {
                    LoadGamelistVersion1(gameListNode);
                }
                else
                {
                    XmlSerializer x = new XmlSerializer(typeof(DatabaseEntry));
                    foreach (XmlNode gameNode in gameListNode.SelectSingleNode(XmlName_Games).ChildNodes)
                    {
                        XmlReader     reader = new XmlNodeReader(gameNode);
                        DatabaseEntry entry  = (DatabaseEntry)x.Deserialize(reader);
                        Games.Add(entry.Id, entry);
                    }
                }

                Logger.Info("GameDB XML processed, load complete. Db Language: " + dbLanguage);
            }
            finally
            {
                stream?.Close();
            }
        }
Example #5
0
        private void changeStoreLanguage(StoreLanguage storeLanguage)
        {
            if (Program.GameDB == null)
            {
                return;
            }
            StoreLanguage dbLanguage = StoreLanguage.en;

            if (storeLanguage == StoreLanguage.windows)
            {
                CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
                if (Enum.GetNames(typeof(StoreLanguage)).ToList().Contains(currentCulture.TwoLetterISOLanguageName))
                {
                    dbLanguage =
                        (StoreLanguage)Enum.Parse(typeof(StoreLanguage), currentCulture.TwoLetterISOLanguageName);
                }
                else
                {
                    if (currentCulture.Name == "zh-Hans" || currentCulture.Parent.Name == "zh-Hans")
                    {
                        dbLanguage = StoreLanguage.zh_Hans;
                    }
                    else if (currentCulture.Name == "zh-Hant" || currentCulture.Parent.Name == "zh-Hant")
                    {
                        dbLanguage = StoreLanguage.zh_Hant;
                    }
                    else if (currentCulture.Name == "pt-BR" || currentCulture.Parent.Name == "pt-BR")
                    {
                        dbLanguage = StoreLanguage.pt_BR;
                    }
                }
            }
            else
            {
                dbLanguage = storeLanguage;
            }
            if (Program.GameDB.dbLanguage != dbLanguage)
            {
                Program.GameDB.dbLanguage = dbLanguage;
                foreach (GameDBEntry g in Program.GameDB.Games.Values)
                {
                    g.Tags             = null;
                    g.Flags            = null;
                    g.Genres           = null;
                    g.SteamReleaseDate = null;
                    g.LastStoreScrape  = 0;
                }
                Program.GameDB.Save("GameDB.xml.gz");
            }
            string test = Thread.CurrentThread.CurrentCulture.Name;
        }
Example #6
0
        public void TestStoreLanguageRepositoryGetSingle()
        {
            var log            = new StoreLanguageRepository(new StoreContext(ConnectionString));
            var storeLanguange = new StoreLanguage();

            storeLanguange.LanguageCode = "tr-test";
            storeLanguange.Name         = "Turkce";
            storeLanguange.UpdatedDate  = DateTime.Now;
            storeLanguange.CreatedDate  = DateTime.Now;
            storeLanguange.State        = true;
            storeLanguange.StoreId      = 9;
            storeLanguange.Ordering     = 1;
            log.Add(storeLanguange);
            log.Save();
        }
Example #7
0
        public void ChangeLanguage(StoreLanguage language)
        {
            StoreLanguage dbLang = language;

            if (Language == dbLang)
            {
                return;
            }

            Language = dbLang;
            //clean DB from data in wrong language
            foreach (DatabaseEntry g in Games.Values)
            {
                if (g.Id <= 0)
                {
                    continue;
                }

                g.Tags             = null;
                g.Flags            = null;
                g.Genres           = null;
                g.SteamReleaseDate = null;
                g.LastStoreScrape  = 1; //pretend it is really old data
                g.VRSupport        = new VRSupport();
                g.LanguageSupport  = new LanguageSupport();
            }

            //Update DB with data in correct language
            Queue <int> gamesToUpdate = new Queue <int>();

            if (FormMain.CurrentProfile != null)
            {
                foreach (GameInfo game in FormMain.CurrentProfile.GameData.Games.Values)
                {
                    if (game.Id > 0)
                    {
                        gamesToUpdate.Enqueue(game.Id);
                    }
                }

                using (DbScrapeDlg dialog = new DbScrapeDlg(gamesToUpdate))
                {
                    dialog.ShowDialog();
                }
            }

            Save();
        }
Example #8
0
        public static CultureInfo GetCultureInfoFromStoreLanguage(StoreLanguage dbLanguage)
        {
            string      l       = Enum.GetName(typeof(StoreLanguage), dbLanguage);
            CultureInfo culture = CultureInfo.GetCultureInfo("en");

            if (l == "zh_Hans")
            {
                culture = CultureInfo.GetCultureInfo("zh-Hans");
            }
            else if (l == "zh_Hant")
            {
                culture = CultureInfo.GetCultureInfo("zh-Hant");
            }
            else if (l == "pt-BR")
            {
                culture = CultureInfo.GetCultureInfo("pt-BR");
            }
            else if (l == "windows")
            {
                CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
                if (Enum.GetNames(typeof(StoreLanguage)).ToList().Contains(currentCulture.TwoLetterISOLanguageName))
                {
                    culture = currentCulture;
                }
                else
                {
                    if (currentCulture.Name == "zh-Hans" || currentCulture.Parent.Name == "zh-Hans")
                    {
                        culture = CultureInfo.GetCultureInfo("zh-Hans");
                    }
                    else if (currentCulture.Name == "zh-Hant" || currentCulture.Parent.Name == "zh-Hant")
                    {
                        culture = CultureInfo.GetCultureInfo("zh-Hant");
                    }
                    else if (currentCulture.Name == "pt-BR" || currentCulture.Parent.Name == "pt-BR")
                    {
                        culture = CultureInfo.GetCultureInfo("pt-BR");
                    }
                }
            }
            else
            {
                culture = CultureInfo.GetCultureInfo(l);
            }

            return(culture);
        }
Example #9
0
        public ActionResult SaveOrEdit(int id = 0, int selectedStoreId = 0)
        {
            var item = new StoreLanguage();

            if (id != 0)
            {
                item             = StoreLanguageRepository.GetSingle(id);
                item.UpdatedDate = DateTime.Now;
            }
            else
            {
                item.UpdatedDate = DateTime.Now;
                item.CreatedDate = DateTime.Now;
                item.State       = true;
                item.StoreId     = selectedStoreId;
            }
            return(View(item));
        }
Example #10
0
        public void ChangeLanguage(StoreLanguage language)
        {
            if (Program.Database == null)
            {
                return;
            }

            if (dbLanguage == language)
            {
                return;
            }

            dbLanguage = language;

            foreach (DatabaseEntry entry in Games.Values)
            {
                if (entry.Id <= 0)
                {
                    continue;
                }

                entry.Clear();
            }

            List <int> toUpdate = new List <int>();

            if (FormMain.CurrentProfile != null)
            {
                foreach (GameInfo game in FormMain.CurrentProfile.GameData.Games.Values)
                {
                    if (game.Id > 0)
                    {
                        toUpdate.Add(game.Id);
                    }
                }

                using (ScrapeDialog dialog = new ScrapeDialog(toUpdate))
                {
                    dialog.ShowDialog();
                }
            }

            Save("GameDB.xml.gz");
        }
Example #11
0
        public ActionResult SaveOrEdit(StoreLanguage model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (model.Id == 0)
                    {
                        StoreLanguageRepository.Add(model);
                    }
                    else
                    {
                        StoreLanguageRepository.Edit(model);
                    }
                    StoreLanguageRepository.Save();

                    if (IsSuperAdmin)
                    {
                        return(RedirectToAction("Index", new { storeId = model.StoreId }));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
            }
            catch (DbEntityValidationException ex)
            {
                var message = GetDbEntityValidationExceptionDetail(ex);
                Logger.Error(ex, "DbEntityValidationException:" + message);
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Unable to save changes:" + model);
                //Log the error (uncomment dex variable name and add a line here to write a log.
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
            }


            return(View(model));
        }
Example #12
0
        public void ChangeLanguage(StoreLanguage language)
        {
            StoreLanguage dbLang = language;

            if (Language == dbLang)
            {
                return;
            }

            Language = dbLang;
            //clean DB from data in wrong language
            foreach (DatabaseEntry g in Values)
            {
                if (g.Id <= 0)
                {
                    continue;
                }

                g.Tags             = null;
                g.Flags            = null;
                g.Genres           = null;
                g.SteamReleaseDate = null;
                g.LastStoreScrape  = 1; //pretend it is really old data
                g.VRSupport        = new VRSupport();
                g.LanguageSupport  = new LanguageSupport();
            }

            // Update DB with data in correct language
            List <int> appIds = new List <int>();

            if (FormMain.CurrentProfile != null)
            {
                appIds.AddRange(FormMain.CurrentProfile.GameData.Games.Values.Where(g => g.Id > 0).Select(g => g.Id));
                using (DbScrapeDlg dialog = new DbScrapeDlg(appIds))
                {
                    dialog.ShowDialog();
                }
            }

            Save();
        }
Example #13
0
        public static CultureInfo GetCultureInfoFromStoreLanguage(StoreLanguage storeLanguage)
        {
            CultureInfo cultureInfo = CultureInfo.CurrentCulture;

            try
            {
                string language = storeLanguage == StoreLanguage.Default ? Settings.Instance.InterfaceLanguage.ToString() : storeLanguage.ToString();

                foreach (CultureInfo culture in CultureInfo.GetCultures(CultureTypes.AllCultures))
                {
                    if (culture.EnglishName == language)
                    {
                        cultureInfo = culture;
                    }
                }
            }
            catch (Exception e)
            {
                SentryLogger.Log(e);
            }

            return(cultureInfo);
        }
Example #14
0
        public static CultureInfo GetCulture(StoreLanguage language)
        {
            CultureInfo culture;

            switch (language)
            {
            case StoreLanguage.Arabic:
                culture = new CultureInfo("ar");

                break;

            case StoreLanguage.Bulgarian:
                culture = new CultureInfo("bg");

                break;

            case StoreLanguage.ChineseSimplified:
                culture = new CultureInfo("zh-CN");

                break;

            case StoreLanguage.ChineseTraditional:
                culture = new CultureInfo("zh-TW");

                break;

            case StoreLanguage.Czech:
                culture = new CultureInfo("cs");

                break;

            case StoreLanguage.Danish:
                culture = new CultureInfo("da");

                break;

            case StoreLanguage.Dutch:
                culture = new CultureInfo("nl");

                break;

            case StoreLanguage.English:
                culture = new CultureInfo("en");

                break;

            case StoreLanguage.Finnish:
                culture = new CultureInfo("fi");

                break;

            case StoreLanguage.French:
                culture = new CultureInfo("fr");

                break;

            case StoreLanguage.German:
                culture = new CultureInfo("de");

                break;

            case StoreLanguage.Greek:
                culture = new CultureInfo("el");

                break;

            case StoreLanguage.Hungarian:
                culture = new CultureInfo("hu");

                break;

            case StoreLanguage.Italian:
                culture = new CultureInfo("it");

                break;

            case StoreLanguage.Japanese:
                culture = new CultureInfo("ja");

                break;

            case StoreLanguage.Korean:
                culture = new CultureInfo("ko");

                break;

            case StoreLanguage.Norwegian:
                culture = new CultureInfo("no");

                break;

            case StoreLanguage.Polish:
                culture = new CultureInfo("pl");

                break;

            case StoreLanguage.Portuguese:
                culture = new CultureInfo("pt");

                break;

            case StoreLanguage.PortugueseBrasil:
                culture = new CultureInfo("pt-BR");

                break;

            case StoreLanguage.Romanian:
                culture = new CultureInfo("ro");

                break;

            case StoreLanguage.Russian:
                culture = new CultureInfo("ru");

                break;

            case StoreLanguage.Spanish:
                culture = new CultureInfo("es");

                break;

            case StoreLanguage.Swedish:
                culture = new CultureInfo("sv");

                break;

            case StoreLanguage.Thai:
                culture = new CultureInfo("th");

                break;

            case StoreLanguage.Turkish:
                culture = new CultureInfo("tr");

                break;

            case StoreLanguage.Ukrainian:
                culture = new CultureInfo("uk");

                break;

            default:

                throw new ArgumentOutOfRangeException(nameof(language), language, null);
            }

            return(culture);
        }
Example #15
0
        public void ChangeLanguage(StoreLanguage lang)
        {
            if (Program.Database == null)
            {
                return;
            }

            StoreLanguage dbLang = StoreLanguage.en;

            if (lang == StoreLanguage.windows)
            {
                CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
                if (Enum.GetNames(typeof(StoreLanguage)).ToList().Contains(currentCulture.TwoLetterISOLanguageName))
                {
                    dbLang = (StoreLanguage)Enum.Parse(typeof(StoreLanguage), currentCulture.TwoLetterISOLanguageName);
                }
                else
                {
                    if ((currentCulture.Name == "zh-Hans") || (currentCulture.Parent.Name == "zh-Hans"))
                    {
                        dbLang = StoreLanguage.zh_Hans;
                    }
                    else if ((currentCulture.Name == "zh-Hant") || (currentCulture.Parent.Name == "zh-Hant"))
                    {
                        dbLang = StoreLanguage.zh_Hant;
                    }
                    else if ((currentCulture.Name == "pt-BR") || (currentCulture.Parent.Name == "pt-BR"))
                    {
                        dbLang = StoreLanguage.pt_BR;
                    }
                }
            }
            else
            {
                dbLang = lang;
            }

            if (Language == dbLang)
            {
                return;
            }

            foreach (DatabaseEntry entry in Games.Values)
            {
                if (entry.Id <= 0)
                {
                    continue;
                }

                entry.Tags.Clear();
                entry.Flags.Clear();
                entry.Genres.Clear();
                entry.SteamReleaseDate = null;
                entry.LastStoreScrape  = 1;                //pretend it is really old data
                entry.VRSupport        = new VRSupport();
                entry.LanguageSupport  = new LanguageSupport();
            }

            //Update DB with data in correct language

            if (MainForm.CurrentProfile == null)
            {
                Save("GameDB.xml.gz");
                return;
            }

            SortedSet <int> appIds = new SortedSet <int>();

            foreach (GameInfo game in MainForm.CurrentProfile.GameData.Games.Values)
            {
                if (game.Id <= 0)
                {
                    continue;
                }

                appIds.Add(game.Id);
            }

            using (ScrapeDialog dialog = new ScrapeDialog(appIds))
            {
                dialog.ShowDialog();
            }

            Save("GameDB.xml.gz");
        }
Example #16
0
        /// <summary>
        ///     Returns a CultureInfo instance for the specified language.
        /// </summary>
        /// <param name="language">
        ///     Store language to get the CultureInfo for.
        /// </param>
        /// <returns>
        ///     Returns a CultureInfo instance.
        /// </returns>
        /// <remarks>
        ///     https://partner.steamgames.com/doc/store/localization
        /// </remarks>
        public static CultureInfo GetCultureInfo(StoreLanguage language)
        {
            switch (language)
            {
            case StoreLanguage.Arabic:
                return(new CultureInfo("ar"));

            case StoreLanguage.Bulgarian:
                return(new CultureInfo("bg"));

            case StoreLanguage.ChineseSimplified:
                return(new CultureInfo("zh-CN"));

            case StoreLanguage.ChineseTraditional:
                return(new CultureInfo("zh-TW"));

            case StoreLanguage.Czech:
                return(new CultureInfo("cs"));

            case StoreLanguage.Danish:
                return(new CultureInfo("da"));

            case StoreLanguage.Dutch:
                return(new CultureInfo("nl"));

            case StoreLanguage.English:
                return(new CultureInfo("en"));

            case StoreLanguage.Finnish:
                return(new CultureInfo("fi"));

            case StoreLanguage.French:
                return(new CultureInfo("fr"));

            case StoreLanguage.German:
                return(new CultureInfo("de"));

            case StoreLanguage.Greek:
                return(new CultureInfo("el"));

            case StoreLanguage.Hungarian:
                return(new CultureInfo("hu"));

            case StoreLanguage.Italian:
                return(new CultureInfo("it"));

            case StoreLanguage.Japanese:
                return(new CultureInfo("ja"));

            case StoreLanguage.Korean:
                return(new CultureInfo("ko"));

            case StoreLanguage.Norwegian:
                return(new CultureInfo("no"));

            case StoreLanguage.Polish:
                return(new CultureInfo("pl"));

            case StoreLanguage.Portuguese:
                return(new CultureInfo("pt"));

            case StoreLanguage.PortugueseBrasil:
                return(new CultureInfo("pt-BR"));

            case StoreLanguage.Romanian:
                return(new CultureInfo("ro"));

            case StoreLanguage.Russian:
                return(new CultureInfo("ru"));

            case StoreLanguage.Spanish:
                return(new CultureInfo("es"));

            case StoreLanguage.SpanishLatin:
                // TODO: Confirm this is the proper language code.
                return(new CultureInfo("es-MX"));

            case StoreLanguage.Swedish:
                return(new CultureInfo("sv"));

            case StoreLanguage.Thai:
                return(new CultureInfo("th"));

            case StoreLanguage.Turkish:
                return(new CultureInfo("tr"));

            case StoreLanguage.Ukrainian:
                return(new CultureInfo("uk"));

            case StoreLanguage.Vietnamese:
                return(new CultureInfo("vi"));

            default:
                throw new ArgumentOutOfRangeException(nameof(language), language, null);
            }
        }
Example #17
0
        /// <summary>
        ///     Returns the Steam Store API language code for the specified language.
        /// </summary>
        /// <param name="language">
        ///     Store language to get the API code for.
        /// </param>
        /// <returns>
        ///     Returns the API language code.
        /// </returns>
        /// <remarks>
        ///     https://partner.steamgames.com/doc/store/localization
        /// </remarks>
        public static string LanguageCode(StoreLanguage language)
        {
            switch (language)
            {
            case StoreLanguage.Arabic:
                return("arabic");

            case StoreLanguage.Bulgarian:
                return("bulgarian");

            case StoreLanguage.ChineseSimplified:
                // ReSharper disable once StringLiteralTypo
                return("schinese");

            case StoreLanguage.ChineseTraditional:
                // ReSharper disable once StringLiteralTypo
                return("tchinese");

            case StoreLanguage.Czech:
                return("czech");

            case StoreLanguage.Danish:
                return("danish");

            case StoreLanguage.Dutch:
                return("dutch");

            case StoreLanguage.English:
                return("english");

            case StoreLanguage.Finnish:
                return("finnish");

            case StoreLanguage.French:
                return("french");

            case StoreLanguage.German:
                return("german");

            case StoreLanguage.Greek:
                return("greek");

            case StoreLanguage.Hungarian:
                return("hungarian");

            case StoreLanguage.Italian:
                return("italian");

            case StoreLanguage.Japanese:
                return("japanese");

            case StoreLanguage.Korean:
                // ReSharper disable once StringLiteralTypo
                return("koreana");

            case StoreLanguage.Norwegian:
                return("norwegian");

            case StoreLanguage.Polish:
                return("polish");

            case StoreLanguage.Portuguese:
                return("portuguese");

            case StoreLanguage.PortugueseBrasil:
                return("brazilian");

            case StoreLanguage.Romanian:
                return("romanian");

            case StoreLanguage.Russian:
                return("russian");

            case StoreLanguage.Spanish:
                return("spanish");

            case StoreLanguage.SpanishLatin:
                // ReSharper disable once StringLiteralTypo
                return("latam");

            case StoreLanguage.Swedish:
                return("swedish");

            case StoreLanguage.Thai:
                return("thai");

            case StoreLanguage.Turkish:
                return("turkish");

            case StoreLanguage.Ukrainian:
                return("ukrainian");

            case StoreLanguage.Vietnamese:
                return("vietnamese");

            default:
                throw new ArgumentOutOfRangeException(nameof(language), language, null);
            }
        }
        protected async Task <DateTime?> AddProductArtifactAsync(string key, string value, Product product, ProductBuild productBuild, bool successful)
        {
            var productArtifact = new ProductArtifact
            {
                ProductId      = product.Id,
                ProductBuildId = productBuild.Id,
                ArtifactType   = key,
                Url            = value
            };
            var updatedArtifact  = WebRequestWrapper.GetFileInfo(productArtifact);
            var existingArtifact = await ProductArtifactRepository
                                   .Get().Where(a => a.ProductId == product.Id && a.ProductBuildId == productBuild.Id && a.ArtifactType == key && a.Url == value)
                                   .FirstOrDefaultAsync();

            if (existingArtifact != null)
            {
                // Not sure why we are getting multiple of these, but we don't want multiple entries.
                // Should we ignore it or update?  Ignore for now. Updating threw exceptions
                Log.Information($"Updating Artifact: Id={existingArtifact.Id}");
                updatedArtifact.Id = existingArtifact.Id;
                // await ProductArtifactRepository.UpdateAsync(updatedArtifact);
            }
            else
            {
                var newArtifact = await ProductArtifactRepository.CreateAsync(updatedArtifact);

                Log.Information($"Created Artifact: Id={newArtifact.Id}");
            }

            // On version.json, update the ProductBuild.Version
            if (key == "version" && updatedArtifact.ContentType == "application/json")
            {
                try
                {
                    var contents = WebClient.DownloadString(value);
                    var version  = JsonConvert.DeserializeObject <Dictionary <string, object> >(contents);
                    if (version.ContainsKey("version"))
                    {
                        productBuild.Version = version["version"] as String;
                        await ProductBuildRepository.UpdateAsync(productBuild);

                        if (successful)
                        {
                            product.VersionBuilt = version["version"] as String;
                            await ProductRepository.UpdateAsync(product);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex, $"Parsing {key}: {value}");
                }
            }

            // On play-listing-manifest.json, update the Project.DefaultLanguage
            if (key == "play-listing-manifest" && updatedArtifact.ContentType == "application/json")
            {
                try
                {
                    var contents = WebClient.DownloadString(value);
                    var manifest = JsonConvert.DeserializeObject <Dictionary <string, object> >(contents);
                    if (manifest.ContainsKey("default-language"))
                    {
                        var           languageName  = manifest["default-language"] as String;
                        StoreLanguage storeLanguage = await LanguageRepository.Get().Where(lang => lang.Name == languageName).FirstOrDefaultAsync();

                        if (storeLanguage != null)
                        {
                            product.StoreLanguageId = storeLanguage.Id;
                            await ProductRepository.UpdateAsync(product);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex, $"Parsing {key}: {value}");
                }
            }

            return(updatedArtifact.LastModified);
        }
Example #19
0
        //
        // GET: /StoreLanguages/Delete/5

        public ActionResult Delete(int id)
        {
            StoreLanguage storelanguage = StoreLanguageRepository.GetSingle(id);

            return(View(storelanguage));
        }
Example #20
0
        public static string GetStoreLanguage(StoreLanguage storeLanguage)
        {
            string language;

            switch (storeLanguage)
            {
            case StoreLanguage.Arabic:
                language = "arabic";

                break;

            case StoreLanguage.Bulgarian:
                language = "bulgarian";

                break;

            case StoreLanguage.ChineseSimplified:
                language = "schinese";

                break;

            case StoreLanguage.ChineseTraditional:
                language = "tchinese";

                break;

            case StoreLanguage.Czech:
                language = "czech";

                break;

            case StoreLanguage.Danish:
                language = "danish";

                break;

            case StoreLanguage.Dutch:
                language = "dutch";

                break;

            case StoreLanguage.English:
                language = "english";

                break;

            case StoreLanguage.Finnish:
                language = "finnish";

                break;

            case StoreLanguage.French:
                language = "french";

                break;

            case StoreLanguage.German:
                language = "german";

                break;

            case StoreLanguage.Greek:
                language = "greek";

                break;

            case StoreLanguage.Hungarian:
                language = "hungarian";

                break;

            case StoreLanguage.Italian:
                language = "italian";

                break;

            case StoreLanguage.Japanese:
                language = "japanese";

                break;

            case StoreLanguage.Korean:
                language = "koreana";

                break;

            case StoreLanguage.Norwegian:
                language = "norwegian";

                break;

            case StoreLanguage.Polish:
                language = "polish";

                break;

            case StoreLanguage.Portuguese:
                language = "portuguese";

                break;

            case StoreLanguage.PortugueseBrasil:
                language = "brazilian";

                break;

            case StoreLanguage.Romanian:
                language = "romanian";

                break;

            case StoreLanguage.Russian:
                language = "russian";

                break;

            case StoreLanguage.Spanish:
                language = "spanish";

                break;

            case StoreLanguage.Swedish:
                language = "swedish";

                break;

            case StoreLanguage.Thai:
                language = "thai";

                break;

            case StoreLanguage.Turkish:
                language = "turkish";

                break;

            case StoreLanguage.Ukrainian:
                language = "ukrainian";

                break;

            default:

                throw new ArgumentOutOfRangeException(nameof(storeLanguage), storeLanguage, null);
            }

            return(language);
        }
Example #21
0
        public void ChangeStoreLanguage(StoreLanguage storeLanguage)
        {
            if (Program.GameDB == null)
            {
                return;
            }
            StoreLanguage dbLanguage = StoreLanguage.en;

            if (storeLanguage == StoreLanguage.windows)
            {
                CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
                if (Enum.GetNames(typeof(StoreLanguage)).ToList().Contains(currentCulture.TwoLetterISOLanguageName))
                {
                    dbLanguage =
                        (StoreLanguage)Enum.Parse(typeof(StoreLanguage), currentCulture.TwoLetterISOLanguageName);
                }
                else
                {
                    if (currentCulture.Name == "zh-Hans" || currentCulture.Parent.Name == "zh-Hans")
                    {
                        dbLanguage = StoreLanguage.zh_Hans;
                    }
                    else if (currentCulture.Name == "zh-Hant" || currentCulture.Parent.Name == "zh-Hant")
                    {
                        dbLanguage = StoreLanguage.zh_Hant;
                    }
                    else if (currentCulture.Name == "pt-BR" || currentCulture.Parent.Name == "pt-BR")
                    {
                        dbLanguage = StoreLanguage.pt_BR;
                    }
                }
            }
            else
            {
                dbLanguage = storeLanguage;
            }
            if (Program.GameDB.dbLanguage != dbLanguage)
            {
                Program.GameDB.dbLanguage = dbLanguage;
                //clean DB from data in wrong language
                foreach (GameDBEntry g in Program.GameDB.Games.Values)
                {
                    if (g.Id > 0)
                    {
                        g.Tags             = null;
                        g.Flags            = null;
                        g.Genres           = null;
                        g.SteamReleaseDate = null;
                        g.LastStoreScrape  = 0;
                        g.vrSupport        = new VrSupport();
                        g.languageSupport  = new LanguageSupport();
                    }
                }
                Program.GameDB.Save("GameDB.xml.gz");

                //Update DB with data in correct language
                Queue <int> gamesToUpdate = new Queue <int>();
                if (FormMain.CurrentProfile != null)
                {
                    foreach (GameInfo game in FormMain.CurrentProfile.GameData.Games.Values)
                    {
                        if (game.Id > 0)
                        {
                            gamesToUpdate.Enqueue(game.Id);
                        }
                    }
                    DbScrapeDlg  scrapeDlg = new DbScrapeDlg(gamesToUpdate);
                    DialogResult scrapeRes = scrapeDlg.ShowDialog();

                    if (scrapeRes != DialogResult.Cancel && scrapeDlg.JobsCompleted > 0)
                    {
                        Program.GameDB.Save("GameDB.xml.gz");
                    }
                }
            }
        }
Example #22
0
        public void ChangeLanguage(StoreLanguage language)
        {
            StoreLanguage dbLang = StoreLanguage.en;

            if (language == StoreLanguage.windows)
            {
                CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
                if (Enum.GetNames(typeof(StoreLanguage)).ToList().Contains(currentCulture.TwoLetterISOLanguageName))
                {
                    dbLang = (StoreLanguage)Enum.Parse(typeof(StoreLanguage), currentCulture.TwoLetterISOLanguageName);
                }
                else
                {
                    if (currentCulture.Name == "zh-Hans" || currentCulture.Parent.Name == "zh-Hans")
                    {
                        dbLang = StoreLanguage.zh_Hans;
                    }
                    else if (currentCulture.Name == "zh-Hant" || currentCulture.Parent.Name == "zh-Hant")
                    {
                        dbLang = StoreLanguage.zh_Hant;
                    }
                    else if (currentCulture.Name == "pt-BR" || currentCulture.Parent.Name == "pt-BR")
                    {
                        dbLang = StoreLanguage.pt_BR;
                    }
                }
            }
            else
            {
                dbLang = language;
            }

            if (Language == dbLang)
            {
                return;
            }

            Language = dbLang;
            //clean DB from data in wrong language
            foreach (DatabaseEntry g in Games.Values)
            {
                if (g.Id > 0)
                {
                    g.Tags             = null;
                    g.Flags            = null;
                    g.Genres           = null;
                    g.SteamReleaseDate = null;
                    g.LastStoreScrape  = 1; //pretend it is really old data
                    g.VrSupport        = new VrSupport();
                    g.LanguageSupport  = new LanguageSupport();
                }
            }

            //Update DB with data in correct language
            Queue <int> gamesToUpdate = new Queue <int>();

            if (FormMain.CurrentProfile != null)
            {
                foreach (GameInfo game in FormMain.CurrentProfile.GameData.Games.Values)
                {
                    if (game.Id > 0)
                    {
                        gamesToUpdate.Enqueue(game.Id);
                    }
                }

                DbScrapeDlg scrapeDlg = new DbScrapeDlg(gamesToUpdate);
                scrapeDlg.ShowDialog();
            }

            Save("database.json");
        }
Example #23
0
        public static CultureInfo GetCultureInfoFromStoreLanguage(StoreLanguage storeLanguage)
        {
            CultureInfo cultureInfo;

            switch (storeLanguage)
            {
            case StoreLanguage.Default:
                cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(c => c.EnglishName == Settings.Instance.InterfaceLanguage.ToString());
                break;

            case StoreLanguage.Arabic:
                cultureInfo = CultureInfo.GetCultureInfo("ar");
                break;

            case StoreLanguage.Bulgarian:
                cultureInfo = CultureInfo.GetCultureInfo("bg");
                break;

            case StoreLanguage.Schinese:
                cultureInfo = CultureInfo.GetCultureInfo("zh-CN");
                break;

            case StoreLanguage.Tchinese:
                cultureInfo = CultureInfo.GetCultureInfo("zh-TW");
                break;

            case StoreLanguage.Czech:
                cultureInfo = CultureInfo.GetCultureInfo("cs");
                break;

            case StoreLanguage.Danish:
                cultureInfo = CultureInfo.GetCultureInfo("da");
                break;

            case StoreLanguage.Dutch:
                cultureInfo = CultureInfo.GetCultureInfo("nl");
                break;

            case StoreLanguage.English:
                cultureInfo = CultureInfo.GetCultureInfo("en");
                break;

            case StoreLanguage.Finnish:
                cultureInfo = CultureInfo.GetCultureInfo("fi");
                break;

            case StoreLanguage.French:
                cultureInfo = CultureInfo.GetCultureInfo("fr");
                break;

            case StoreLanguage.German:
                cultureInfo = CultureInfo.GetCultureInfo("de");
                break;

            case StoreLanguage.Greek:
                cultureInfo = CultureInfo.GetCultureInfo("el");
                break;

            case StoreLanguage.Hungarian:
                cultureInfo = CultureInfo.GetCultureInfo("hu");
                break;

            case StoreLanguage.Italian:
                cultureInfo = CultureInfo.GetCultureInfo("it");
                break;

            case StoreLanguage.Japanese:
                cultureInfo = CultureInfo.GetCultureInfo("ja");
                break;

            case StoreLanguage.Koreana:
                cultureInfo = CultureInfo.GetCultureInfo("ko");
                break;

            case StoreLanguage.Norwegian:
                cultureInfo = CultureInfo.GetCultureInfo("no");
                break;

            case StoreLanguage.Polish:
                cultureInfo = CultureInfo.GetCultureInfo("pl");
                break;

            case StoreLanguage.Portuguese:
                cultureInfo = CultureInfo.GetCultureInfo("pt");
                break;

            case StoreLanguage.Brazilian:
                cultureInfo = CultureInfo.GetCultureInfo("pt-BR");
                break;

            case StoreLanguage.Romanian:
                cultureInfo = CultureInfo.GetCultureInfo("ro");
                break;

            case StoreLanguage.Russian:
                cultureInfo = CultureInfo.GetCultureInfo("ru");
                break;

            case StoreLanguage.Spanish:
                cultureInfo = CultureInfo.GetCultureInfo("es");
                break;

            case StoreLanguage.Swedish:
                cultureInfo = CultureInfo.GetCultureInfo("sv");
                break;

            case StoreLanguage.Thai:
                cultureInfo = CultureInfo.GetCultureInfo("th");
                break;

            case StoreLanguage.Turkish:
                cultureInfo = CultureInfo.GetCultureInfo("tr");
                break;

            case StoreLanguage.Ukrainian:
                cultureInfo = CultureInfo.GetCultureInfo("uk");
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(storeLanguage), storeLanguage, null);
            }

            return(cultureInfo);
        }