using SA_LTT.Base; using System.Collections.Generic; using System.IO; namespace SA_LTT.Info.RecipeInfo { public class FoupRecipeManager : XmlManager { Equipment _equipment; readonly string _extension = ".xml"; readonly string _filePath = @"FoupRecipe\"; private Dictionary _recipes = new Dictionary(); public Dictionary Recipes { get { return _recipes; } set { _recipes = value; } } public FoupRecipeManager(Equipment equipment) { _equipment = equipment; RefreshRecipes(); } public void RefreshRecipes() { DirectoryInfo directoryInfo = new DirectoryInfo(Equipment.infoFilePath + _filePath); if (directoryInfo.Exists == false) { directoryInfo.Create(); } foreach (FileInfo fileInfo in directoryInfo.GetFiles("*.xml")) { FoupRecipe recipe = new FoupRecipe(); if (TryReadFile(fileInfo.FullName, out recipe)) { if (Recipes.ContainsKey(recipe.Name)) { Recipes[recipe.Name] = recipe.Clone(); } else { Recipes.Add(recipe.Name, recipe.Clone()); } } } } public void SaveOrCreate(FoupRecipe recipe) { SaveFile(Equipment.infoFilePath + _filePath + recipe.Name + _extension, recipe); if (Recipes.ContainsKey(recipe.Name)) { Recipes[recipe.Name] = recipe.Clone(); } else { Recipes.Add(recipe.Name, recipe.Clone()); } } public void Delete(string recipeName) { DeleteFile(Equipment.infoFilePath + _filePath + recipeName + _extension); if (Recipes.ContainsKey(recipeName)) { Recipes.Remove(recipeName); } } public bool ExistsRecipe(string recipeName) { if (Recipes.ContainsKey(recipeName)) { return true; } else { return false; } } public FoupRecipe GetRecipe(string recipeName) { if (ExistsRecipe(recipeName)) { return Recipes[recipeName].Clone(); } else { return null; } } public FoupRecipe[] GetRecipeList() { List recipeList = new List(); foreach (FoupRecipe recipe in Recipes.Values) { recipeList.Add(recipe.Clone()); } return recipeList.ToArray(); } } }