using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ServiceModel; using Aitex.Core.RT.Event; using Aitex.Core.RT.Key; using Aitex.Core.RT.OperationCenter; using Aitex.Core.RT.ParameterCenter; using Aitex.Core.RT.RecipeCenter; using MECF.Framework.Common.CommonData; using MECF.Framework.Common.Equipment; namespace MECF.Framework.Common.ParameterCenter { class ParameterService : IParameterService { /// /// Load a recipe from server to client for editing. /// /// /// /// public string LoadParameter(ModuleName chamId, string parameterName) { EV.PostInfoLog(chamId.ToString(), string.Format("Read {0} recipe {1}.", chamId, parameterName)); return ParameterFileManager.Instance.LoadParameter(chamId.ToString(), parameterName, false); } /// /// Delete a recipe by recipe name /// /// /// /// public bool DeleteParameter(ModuleName chamId, string parameterName) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } //if (!ChamberOperationService.IsSuperEnter()) return false; EV.PostInfoLog(chamId.ToString(), string.Format("Delete {0} recipe {1}.", chamId, parameterName)); return ParameterFileManager.Instance.DeleteParameter(chamId.ToString(), parameterName); } /// /// Get recipe list in xml format /// /// /// /// public string GetXmlParameterList(ModuleName chamId, bool includingUsedParameter) { return ParameterFileManager.Instance.GetXmlParameterList(chamId.ToString(), includingUsedParameter); } /// /// Get recipe data by recipe name /// /// /// /// public IEnumerable GetParameters(ModuleName chamId, bool includingUsedParameter) { return ParameterFileManager.Instance.GetParameters(chamId.ToString(), includingUsedParameter); } /// /// Rename recipe /// /// /// /// /// public bool RenameParameter(ModuleName chamId, string oldName, string newName) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(chamId.ToString(), string.Format("Rename {0} recipe {1} to {2}.", chamId, oldName, newName)); //if (!ChamberOperationService.IsSuperEnter()) return false; return ParameterFileManager.Instance.RenameParameter(chamId.ToString(), oldName, newName); } public bool BackupParameter(string fileOriginalPath, string fileDestinationPath, bool isSaveLinkParameter, List parameterNames) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(fileOriginalPath.ToString(), string.Format("Backup {0} recipe .", fileOriginalPath)); //if (!ChamberOperationService.IsSuperEnter()) return false; return ParameterFileManager.Instance.BackupParameter(fileOriginalPath, fileDestinationPath, isSaveLinkParameter, parameterNames); } public bool CheckBackParameterIsLinkParameter(string fileOriginalPath, List parameterNames) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(fileOriginalPath.ToString(), string.Format("Backup IsLinkRecipe {0} recipe .", fileOriginalPath)); return false;// ParameterFileManager.Instance.CheckBackRecipeIsLinkParameter(fileOriginalPath,recipeNames); } public List RestoreParameterFolderList() { return ParameterFileManager.Instance.RestoreParameterFolderList(); } public string GetXmlRestoreParameterList(string fileType, bool includingUsedRecipe) { return ParameterFileManager.Instance.GetXmlRestoreParameterList(fileType, includingUsedRecipe); } public string LoadRestoreParameter(string pathName, string parameterName) { EV.PostInfoLog(pathName, string.Format("Read {0} recipe {1}.", pathName, parameterName)); return ParameterFileManager.Instance.LoadRestoreParameter(pathName, parameterName, false); } public bool RestoreParameter(string chamId,bool isSaveLink, List parameterNames) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(chamId.ToString(), string.Format("Restore {0} recipe .", chamId)); return ParameterFileManager.Instance.RestoreParameter(chamId.ToString(), isSaveLink,parameterNames); } public bool SigRestoreParameter(string chamId, List parameterNames) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(chamId.ToString(), string.Format("SigRestoreRecipe {0} recipe .", chamId)); return ParameterFileManager.Instance.SigRestoreParameter(chamId.ToString(), parameterNames); } /// /// delete a recipe folder /// /// /// /// public bool DeleteFolder(ModuleName chamId, string folderName) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } //if (!ChamberOperationService.IsSuperEnter()) return false; EV.PostInfoLog(chamId.ToString(), string.Format("Delete {0} recipe folder {1}.", chamId, folderName)); return ParameterFileManager.Instance.DeleteFolder(chamId.ToString(), folderName); } /// /// save recipe content /// /// /// /// /// public bool SaveParameter(ModuleName chamId, string parameterName, string parameterContent) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(chamId.ToString(), string.Format("Modify and save {0} recipe {1}.", chamId, parameterName)); return ParameterFileManager.Instance.SaveParameter(chamId.ToString(), parameterName, parameterContent, false, false); } /// /// save recipe content /// /// /// /// /// public bool SaveAsParameter(ModuleName chamId, string parameterName, string parameterContent) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(chamId.ToString(), string.Format("Modify and save as {0} recipe {1}.", chamId, parameterName)); return ParameterFileManager.Instance.SaveAsParameter(chamId.ToString(), parameterName, parameterContent); } /// /// create a new recipe folder /// /// /// /// public bool CreateFolder(ModuleName chamId, string folderName) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(chamId.ToString(), string.Format("Create {0} recipe foler {1}.", chamId, folderName)); return ParameterFileManager.Instance.CreateFolder(chamId.ToString(), folderName); } /// /// Rename recipe folder name /// /// /// /// /// public bool RenameFolder(ModuleName chamId, string oldName, string newName) { if (KeyManager.Instance.IsExpired) { EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation"); return false; } EV.PostInfoLog(chamId.ToString(), string.Format("Rename {0} recipe folder {1} to {2}.", chamId, oldName, newName)); return ParameterFileManager.Instance.RenameFolder(chamId.ToString(), oldName, newName); } /// /// get reactor's recipe format define file /// /// /// public string GetParameterFormatXml(string chamId) { return ParameterFileManager.Instance.GetParameterFormatXml(chamId); } public Dictionary> GetGroupParameterTemplate() { return ParameterFileManager.Instance.GetGroupParameterTemplate(); } /// /// get reactor's template recipe file /// /// /// public string GetParameterTemplate(ModuleName chamId) { return ParameterFileManager.Instance.GetParameterTemplate(chamId.ToString()); } /// /// 获取当前反应腔正在运行的Recipe信息 /// /// /// recipeName + recipeContent public Tuple LoadRunTimeParameterInfo(ModuleName chamId) { return null; //var pm = PmManager.GetReactor(chamId); //if (pm != null) return pm.LoadRunTimeRecipeInfo(); //return Singleton.Instance.GetRecipeInfo(); } public string GetParameterByBarcode(ModuleName chamId, string barcode) { return ""; //return RecipeFileManager.Instance.GetRecipeByBarcode(chamId.ToString(), barcode); } #region extended recipe interface public string LoadParameterByPath(string pathName, string recipeName) { return ParameterFileManager.Instance.LoadParameter(pathName, recipeName, false); } public bool DeleteParameterByPath(string pathName, string recipeName) { return ParameterFileManager.Instance.DeleteParameter(pathName, recipeName); } public string GetXmlParameterListByPath(string pathName, bool includingUsedRecipe) { return ParameterFileManager.Instance.GetXmlParameterList(pathName, includingUsedRecipe); } public IEnumerable GetParametersByPath(string pathName, bool includingUsedRecipe) { return ParameterFileManager.Instance.GetParameters(pathName, includingUsedRecipe); } public bool RenameParameterByPath(string pathName, string oldName, string newName) { return ParameterFileManager.Instance.RenameParameter(pathName, oldName, newName); } public bool DeleteFolderByPath(string pathName, string folderName) { return ParameterFileManager.Instance.DeleteFolder(pathName, folderName); } public bool SaveParameterByPath(string pathName, string recipeName, string recipeContent) { return ParameterFileManager.Instance.SaveParameter(pathName, recipeName, recipeContent, false, false); } public bool SaveAsParameterByPath(string pathName, string recipeName, string recipeContent) { return ParameterFileManager.Instance.SaveAsParameter(pathName, recipeName, recipeContent); } public bool CreateFolderByPath(string pathName, string folderName) { return ParameterFileManager.Instance.CreateFolder(pathName, folderName); } public bool RenameFolderByPath(string pathName, string oldName, string newName) { return ParameterFileManager.Instance.RenameFolder(pathName, oldName, newName); } public string GetParameterFormatXmlByPath(string pathName) { return ParameterFileManager.Instance.GetParameterFormatXml(pathName); } public string GetParameterTemplateByPath(string pathName) { return ParameterFileManager.Instance.GetParameterTemplate(pathName); } public Tuple LoadRunTimeParameterInfoByPath(string pathName) { return null; } public string GetParameterByBarcodeByPath(string pathName, string barcode) { return ""; } public List CheckParameter(string prefix, string parameterName) { ParameterFileManager.Instance.CheckParameter(prefix, parameterName, out List reasons); return reasons; } public bool CheckRecipe(string prefix, string parameterName, out List reasons) { throw new NotImplementedException(); } public bool GetParameterChecked(string prefix, string parameterName) { return ParameterFileManager.Instance.GetParameterChecked(prefix, parameterName); } public List GetFileNodeParameterListByPath(string prefix) { return ParameterFileManager.Instance.GetFileNodeParameterListByPath(prefix); } #endregion } }