示例#1
0
		/// <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!" );
                }
            }
        }