private void WriteAppFile(string outputFileName, IEnumerable <RecipeLocalised> localisedData, Dictionary <string, List <ILocalised> > lookup, LanguageDetail language, Dictionary <string, InventoryDescription> itemNames) { List <AppRecipeLang> appRecipe = new List <AppRecipeLang>(); List <AppRecipeBase> appRecipeBaseItems = new List <AppRecipeBase>(); foreach (RecipeLocalised recipeLocalised in localisedData) { if (GuidExclusion.All.Any(a => a.Equals(recipeLocalised.ItemId))) { continue; } RecipeLocalised relocalised = (language.LanguageType == LanguageType.English) ? recipeLocalised : recipeLocalised.ReLocalise(itemNames); AppRecipe full = AppFileReciperMapper.ToAppFile(relocalised, lookup); appRecipe.Add(full.ToLang()); string image = GetItemImage(full.AppId); appRecipeBaseItems.Add(full.ToBase(image)); } _appFileSysRepo.WriteBackToJsonFile(appRecipeBaseItems, outputFileName); _appFileSysRepo.WriteBackToJsonFile(appRecipe, GetJsonLang(language.LanguageAppFolder, outputFileName)); }
private List <NotFoundItem> GenerateRecipeIntermediate(string filename, Dictionary <string, InventoryDescription> itemNames, string prefix, string outputFilename, Dictionary <string, List <ILocalised> > lookup, List <NotFoundItem> notFounds) { List <Recipe> jsonContent = _survivalCraftingFileSysRepo.LoadListJsonFile <Recipe>(filename); int currentOtherIndex = notFounds.Count; int prefixCount = currentOtherIndex + 1; List <NotFoundItem> notFound = new List <NotFoundItem>(); List <RecipeLocalised> fileData = new List <RecipeLocalised>(); for (int recipeIndex = 0; recipeIndex < jsonContent.Count; recipeIndex++) { Recipe recipe = jsonContent[recipeIndex]; RecipeLocalised localised = recipe.Localise(prefix, recipeIndex, itemNames); if (!lookup.ContainsKey(localised.ItemId)) { bool nfContains = notFounds.Any(nf => nf.ItemId.Equals(localised.ItemId, StringComparison.InvariantCultureIgnoreCase)); if (!nfContains) { notFound.Add(new NotFoundItem { AppId = $"{Prefix.Other}{prefixCount}", ItemId = recipe.ItemId, }); prefixCount++; } } fileData.Add(localised); } _outputFileSysRepo.WriteBackToJsonFile(fileData, outputFilename); return(notFound); }