Example #1
0
        public static IEnumerable <Product> LoadProducts(CMSDDocument doc, IEnumerable <ModelNode> nodes)
        {
            if (nodes == null || doc == null)
            {
                return(null);
            }
            var products   = new ObservableCollection <Product>();
            var modelNodes = nodes as IList <ModelNode> ?? nodes.ToList();

            foreach (var partType in doc.DataSection.PartTypes)
            {
                var jobstodo = new ObservableCollection <Pair <ModelNode, Job> >();
                foreach (var p in partType.ResourceJob)
                {
                    var first = modelNodes.FirstOrDefault(t => t.ResourceModel.ProcessName == p.Resource);

                    if (first != null)
                    {
                        var first1 = first.ResourceModel.Job.FirstOrDefault(t => t.Name == p.Job);
                        if (first1 != null)
                        {
                            jobstodo.Add(new Pair <ModelNode, Job>(first, first1));
                        }
                    }
                }
                var product = new Product(jobstodo)
                {
                    ProductName = partType.ProductName,
                    Editmode    = false
                };
                if (partType.Color != null)
                {
                    product.Color = Color.FromRgb(partType.Color[0], partType.Color[1], partType.Color[2]);
                }

                product.IsChecked = true;
                products.Add(product);

                foreach (var pair in jobstodo.ToList())
                {
                    //product.AddNextMachine(pair.Key,pair.Value);
                    pair.Key.ResourceModel.RelatedProducts.Add(product);
                }
            }

            return(products);
        }
Example #2
0
        public static Task <bool> SaveNodes(IEnumerable <ModelNode> nodes, SaveFileDialog save, IEnumerable <Product> products)
        {
            Task <bool> t = new Task <bool>(() =>
            {
                try
                {
                    var resources = new List <Resource>();
                    var jobs      = new List <CMSDDocumentDataSectionJob>();
                    foreach (ModelNode modelNode in nodes)
                    {
                        var res = HarvestModelNode(modelNode);
                        resources.Add(res);
                        jobs.AddRange(HarvestJobs(modelNode, res));
                    }
                    var parts = new List <PartType>();
                    foreach (var product in products)
                    {
                        parts.Add(HarvestProduct(product));
                    }

                    var defs = new CMSDDocument
                    {
                        DataSection =
                        {
                            PartTypes = parts.ToArray(),
                            Resource  = resources.ToArray(),
                            Job       = jobs.ToArray()
                        }
                    };
                    var stream     = File.Open(save.FileName, FileMode.Create);
                    var bformatter = new BinaryFormatter();
                    bformatter.Serialize(stream, defs);
                    stream.Close();
                    return(true);
                }
                catch
                {
                    return(false);
                }
            });

            t.Start();
            return(t);
        }