/// <summary> /// Sort existin elements /// </summary> /// <param name="elements"></param> /// <param name="form"></param> /// <param name="curFilter"></param> /// <returns></returns> public int Sort( List<RecTMElement> elements, RecProductionFormStd form, BedFilter curFilter ) { if( null == form || null == elements || elements.Count == 0 ) { var msg = string.Format( "Missing sorting input!" ); throw new FaultException<BusinessFaultContract>( new BusinessFaultContract() { Argument = msg }, "Cannot sort form!" ); } this.filter = curFilter; var bed = new ProductionBed( form, curFilter ); var positionedElements = bed.FillBed( elements ); var savedElem = bed.Save( positionedElements ); if( savedElem < elements.Count ) { // remove the delta var mgr = new ProjectManager(); var planner = new ModelPlanner(); foreach( RecTMElement elem in elements ) { if( !mgr.Find( positionedElements, elem ) ) { planner.ResetElementProduction( elem.Factory, elem.Project, 0, elem.ElementId, false ); } } } return 0; }