using SA_LTT.Base;
|
using System.Collections.Generic;
|
using System.IO;
|
|
namespace SA_LTT.Info.RecipeInfo
|
{
|
public class FoupRecipeManager : XmlManager<FoupRecipe>
|
{
|
Equipment _equipment;
|
readonly string _extension = ".xml";
|
readonly string _filePath = @"FoupRecipe\";
|
|
private Dictionary<string, FoupRecipe> _recipes = new Dictionary<string, FoupRecipe>();
|
|
public Dictionary<string, FoupRecipe> 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<FoupRecipe> recipeList = new List<FoupRecipe>();
|
|
foreach (FoupRecipe recipe in Recipes.Values)
|
{
|
recipeList.Add(recipe.Clone());
|
}
|
|
return recipeList.ToArray();
|
}
|
}
|
}
|