Ejemplo n.º 1
0
        /// <summary>
        /// Sorts element on bed
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="form"></param>
        /// <param name="sortType"></param>
        /// <returns></returns>
        public bool SortBedElements( BedFilter filter, RecProductionFormStd form, SortType sortType )
        {
            // Let's work on a copy of the given curFilter
            // Make sure that SingleElementCastUnit is set to false
            var curFilter = new BedFilter( filter ) { SingleElementCastUnit = false };

            var castData = LoadBedPlanning( curFilter, form );
            var forms = castData.CastList;
            if( forms != null )
            {
                foreach( var bed in forms )
                {
                    if( bed.ProductionCast == null )
                    {
                        continue;
                    }
                    if( bed.ProductionCast.Elements == null || bed.ProductionCast.Elements.Count <= 0 )
                    {
                        continue;
                    }
                    List<RecTMElement> sortedElements;
                    if( sortType == SortType.DimensionAscending )
                    {
                        sortedElements = bed.ProductionCast.Elements.OrderBy( x => x.ElementWidth ).ThenBy( x => x.ElementLengthOnBed ).ToList();
                    }
                    else if( sortType == SortType.DimensionDescending )
                    {
                        sortedElements = bed.ProductionCast.Elements.OrderByDescending( x => x.ElementWidth ).ThenByDescending( x => x.ElementLengthOnBed ).ToList();
                    }
                    else if( sortType == SortType.ErectionSequenceAscending )
                    {
                        sortedElements = bed.ProductionCast.Elements.OrderBy( x => x.ErectionSequenceNo ).ToList();
                    }
                    else //( sortType == SortType.ErectionSequenceDescending )
                    {
                        sortedElements = bed.ProductionCast.Elements.OrderByDescending( x => x.ErectionSequenceNo ).ToList();
                    }

                    var bpc = new ProductionBedContainer();
                    bpc.Sort( sortedElements, bed, curFilter );
                }
            }

            return true;
        }