Example #1
0
        private void RefreshOutputs()
        {
            var builder   = new Builder(KitSpecification, Design);
            var buildPlan = builder.Create();

            m_buildSteps = new KitBuildStepList();
            m_parts      = new KitPartList();

            var yardages = new List <KitBuildItem>();

            foreach (var buildStep in buildPlan.BuildSteps)
            {
                var kitBuildStep = new KitBuildStep(buildStep.StepNumber, buildStep.Description);
                m_buildSteps.Add(kitBuildStep);

                foreach (var input in buildStep.Consumes)
                {
                    var kitBuildItem = CreateKitBuildItem(input);
                    kitBuildStep.Consumes.Add(kitBuildItem);

                    if (kitBuildItem.BuildItemType == BuildComponentTypes.Yardage)
                    {
                        yardages.Add(kitBuildItem);
                    }
                }

                foreach (var output in buildStep.Produces)
                {
                    kitBuildStep.Produces.Add(CreateKitBuildItem(output));
                }
            }

            var partIndex = 0;

            foreach (var yardage in yardages)
            {
                var areaSize = Area.GetSmallestContainingStandardArea(yardage.Area);
                var part     = m_parts.Where(r => r.Sku == yardage.FabricStyles[0].Sku && r.AreaSize == areaSize).SingleOrDefault();
                if (part == null)
                {
                    partIndex += 1;

                    part = new KitPart(
                        "P." + partIndex,
                        yardage.FabricStyles[0].Sku,
                        areaSize,
                        1,
                        yardage.FabricStyles[0].Color);
                    m_parts.Add(part);
                }
                else
                {
                    part.Quantity += 1;
                }

                yardage.PartId = part.Id;
            }
        }
Example #2
0
        protected KitBuildStep(KitBuildStep prototype)
        {
            if (prototype == null)
            {
                throw new ArgumentNullException(nameof(prototype));
            }

            m_stepNumber  = prototype.m_stepNumber;
            m_description = prototype.m_description;

            m_consumes = prototype.m_consumes.Clone();
            m_produces = prototype.m_produces.Clone();
        }