public bool IsLanguageStatus(Language language, LanguageStatus status) { LanguageStatus defaultStatus = LanguageStatus.First(); if (Game.ImplementedLanguages == null) { return(status.Id == defaultStatus.Id); } ImplementedLanguage implementedLanguage = Game.ImplementedLanguages.FirstOrDefault(il => il.LanguageId == language.Id); if (implementedLanguage == null) { return(status.Id == defaultStatus.Id); } return(status.Id == implementedLanguage.LanguageStatusId); }
protected void UpdateImplementedLanguages(DaedalicProductDatabaseContext context, Dictionary <string, string> selectedLanguages, Game gameToUpdate) { var oldLanguages = gameToUpdate.ImplementedLanguages.ToList(); var newLanguages = new List <ImplementedLanguage>(); foreach (var language in context.Language.ToList()) { string newLanguageStatus; if (!selectedLanguages.TryGetValue(language.Id.ToString(), out newLanguageStatus)) { continue; } int newLanguageStatusId; if (!int.TryParse(newLanguageStatus, out newLanguageStatusId)) { continue; } ImplementedLanguage implementedLanguage = gameToUpdate.ImplementedLanguages.FirstOrDefault(il => il.LanguageId == language.Id); if (implementedLanguage != null) { implementedLanguage.LanguageStatusId = newLanguageStatusId; } else { implementedLanguage = new ImplementedLanguage { GameId = gameToUpdate.Id, LanguageId = language.Id, LanguageStatusId = newLanguageStatusId }; gameToUpdate.ImplementedLanguages.Add(implementedLanguage); } } }