/// <summary> /// Delete of Transport items /// </summary> /// <param name="transport"></param> /// <returns></returns> public int DeleteCascadeTransport( RecTransport transport ) { if( transport == null || transport.TransportId == 0 ) { throw new ArgumentNullException( "RecTransport" ); } string project = ""; if( transport.IsTemplate == 1 ) { // Templates are saved on factory level (factory, factory), 2012-04-23 project = transport.Factory; } else { project = transport.Project; } // Delete cascade vehicles ProjectManager vehSvc = new ProjectManager(); List<RecTransportVehicleStd> vehicles = vehSvc.LoadTransportVehicles( transport ); foreach( RecTransportVehicleStd veh in vehicles ) { this.DeleteCascadeVehicleTransport( transport, veh ); } int ret = 0; // Now let's delete the transport using( ImpactDatabase database = new ImpactDatabase() ) { ImpactDelete delete = new ImpactDelete( ImpTransport.Instance ) { Where = { ImpTransport.Factory.Equal( transport.Factory ), ImpTransport.Project.Equal( project ),// Templates are saved on factory level (factory, factory), 2012-04-23 ImpTransport.TransportId.Equal( transport.TransportId )}, }; string statement = delete.ToString(); ret = database.ExecuteNonQuery( statement ); } return ret; }
/// <summary> /// /// </summary> /// <param name="templates"></param> private void LoadTemplateDetails( List<RecTransport> templates ) { foreach( RecTransport tpl in templates ) { ProjectManager svc = new ProjectManager(); tpl.Vehicles = svc.LoadTransportVehicles( tpl ); // Load vehicle stacks foreach( RecTransportVehicleStd veh in tpl.Vehicles ) { RecTransportVehicleStackStd recStack = new RecTransportVehicleStackStd(); recStack.Factory = veh.Factory; recStack.Project = veh.Project; recStack.Name = veh.Name; veh.Stacks = new ProjectManager().LoadTransportVehicleStackStd( recStack ); if( veh.Stacks.Count == 0 ) { string msg = string.Format( "There are no stacks defined for the standard vehicle \"{0}\" !", veh.Name ); throw new FaultException<BusinessFaultContract>( new BusinessFaultContract() { Argument = msg }, "There are no stacks defined!" ); } } if( tpl.Vehicles.Count == 0 ) { string msg = string.Format( "There are no standard vehicles associated with the transport template \"{0}\" !", tpl.Description ); throw new FaultException<BusinessFaultContract>( new BusinessFaultContract() { Argument = msg }, "The transport temmplate is missing vehicles!" ); } } }