public AllRecipeTemplatesViewModel(
     RecipeTemplateServiceClass recipeTemplateService, StepTemplateServiceClass stepTemplateService, RecipeTemplateGroupServiceClass recipeTemplateGroupService
     )
 {
     _recipeTemplateServcie      = recipeTemplateService;
     _stepTemplateService        = stepTemplateService;
     _recipeTemplateGroupServcie = recipeTemplateGroupService;
     this.CreateAllRecipeTemplates(_recipeTemplateServcie.Items);
     this.CreateAllRecipeTemplateGroups(_recipeTemplateGroupServcie.Items);
     _recipeTemplateServcie.Items.CollectionChanged      += Items_CollectionChanged;
     _recipeTemplateGroupServcie.Items.CollectionChanged += Groups_CollectionChanged;
 }
示例#2
0
        internal static void Load(string fileName, RecipeTemplateServiceClass recipeTemplateService, ProgramServiceClass programService, ProjectServiceClass projectService, ProgramTypeServiceClass programTypeService)
        {
            List <RecipeTemplate> recipeTemplates = BuildRecipeTemplatesFromPseudocode(fileName, recipeTemplateService);

            if (recipeTemplates != null)
            {
                foreach (var rt in recipeTemplates)
                {
                    recipeTemplateService.SuperAdd(rt);
                }
            }

            List <Program> programs = BuildProgramsFromPseudocode(fileName, programService, projectService, programTypeService, recipeTemplateService);

            if (programs != null)
            {
                foreach (var prog in programs)
                {
                    programService.SuperAdd(prog);
                    //programService.FixTemplates(prog);    //不管用
                }
            }
        }
示例#3
0
        private static List <RecipeTemplate> BuildRecipeTemplatesFromPseudocode(string fileName, RecipeTemplateServiceClass recipeTemplateService)
        {
            List <RecipeTemplate> output = new List <RecipeTemplate>();

            if (File.Exists(fileName))
            {
                XDocument xd = new XDocument();
                xd = XDocument.Load(fileName);
                var xmlrecTemplates = xd.Descendants("RecipeTemplates").Elements();
                foreach (var xmlrecTemplate in xmlrecTemplates)
                {
                    output.Add(BuildRecipeTemplateFromPseudocode(xmlrecTemplate));
                }
            }
            if (output.Count != 0)
            {
                return(output);
            }
            else
            {
                return(null);
            }
        }
示例#4
0
        private static Program BuildProgramFromPseudocode(XElement xmlProgram, ProgramServiceClass programService, ProjectServiceClass projectService, ProgramTypeServiceClass programTypeService, RecipeTemplateServiceClass recipeTemplateService)
        {
            var program = new Program();

            try
            {
                program.Name        = xmlProgram.Attribute("Name").Value;
                program.Type        = GetProgramTypeFromNode(xmlProgram.Attribute("Type").Value, programTypeService);
                program.Project     = GetProjectFromNode(xmlProgram.Attribute("Project").Value, projectService);
                program.Requester   = xmlProgram.Attribute("Requester").Value;
                program.RequestTime = DateTime.Parse(xmlProgram.Attribute("RequestDate").Value);

                var xmlTemperatures = xmlProgram.Descendants("Temperatures").Elements();
                if (xmlTemperatures != null)
                {
                    foreach (var xmlT in xmlTemperatures)
                    {
                        program.Temperatures.Add(Convert.ToInt32(xmlT.Value));
                    }
                }

                var xmlRecipes = xmlProgram.Descendants("Recipes").Elements();
                if (xmlRecipes != null)
                {
                    var dic = new Dictionary <int, int>();   //recipe template id, count
                    foreach (var xmlRec in xmlRecipes)
                    {
                        if (xmlRec.Attribute("Template") == null)
                        {
                            continue;
                        }
                        var recTid = xmlRec.Attribute("Template").Value;
                        if (recTid == string.Empty)
                        {
                            continue;
                        }
                        var Tid  = Convert.ToInt32(recTid);
                        var recT = recipeTemplateService.Items.SingleOrDefault(o => o.Id == Tid);
                        if (recT == null)
                        {
                            MessageBox.Show($@"No such recipe template:{recTid}");
                            continue;
                        }
                        program.RecipeTemplates.Add(recT.Name);
                        var count = GetIntergerFromNode(xmlRec, "Count");
                        if (count == 0)
                        {
                            count = 1;
                        }
                        dic.Add(recT.Id, count);
                    }
                    program.BuildRecipes(recipeTemplateService.Items.ToList(), dic);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }

            return(program);
        }
示例#5
0
        private static List <Program> BuildProgramsFromPseudocode(string fileName, ProgramServiceClass programService, ProjectServiceClass projectService, ProgramTypeServiceClass programTypeService, RecipeTemplateServiceClass recipeTemplateService)
        {
            List <Program> output = new List <Program>();

            if (File.Exists(fileName))
            {
                XDocument xd = new XDocument();
                xd = XDocument.Load(fileName);
                var xmlPrograms = xd.Descendants("Programs").Elements();
                foreach (var xmlProgram in xmlPrograms)
                {
                    output.Add(BuildProgramFromPseudocode(xmlProgram, programService, projectService, programTypeService, recipeTemplateService));
                }
            }
            if (output.Count != 0)
            {
                return(output);
            }
            else
            {
                return(null);
            }
        }
示例#6
0
 public GroupManagerViewModel(RecipeTemplateGroupServiceClass recipeTemplateGroupServcie, RecipeTemplateServiceClass recipeTemplateServcie)
 {
     _recipeTemplateGroupServcie = recipeTemplateGroupServcie;
     _recipeTemplateServcie      = recipeTemplateServcie;
     CreateRecipeTemplates();
 }