public Protocols.ToolkitResultProtocol AddAlternatePart(System.String partNumber, System.String partRevision, System.String partDomain, System.String alternatePartNumber, System.String alternatePartRevision, System.String alternatePartDomain)
        {
            ClarifySession session = Global.GetSession( AuthHeader );
            FChoice.Toolkits.Clarify.Logistics.LogisticsToolkit toolkit = new FChoice.Toolkits.Clarify.Logistics.LogisticsToolkit( session );

            return new Protocols.ToolkitResultProtocol( toolkit.AddAlternatePart(partNumber, partRevision, partDomain, alternatePartNumber, alternatePartRevision, alternatePartDomain) );
        }
        public Protocols.ToolkitResultProtocol AddAlternatePart(Protocols.Logistics.AddAlternatePartSetupProtocol setupParam)
        {
            ClarifySession session = Global.GetSession( AuthHeader );
            FChoice.Toolkits.Clarify.Logistics.LogisticsToolkit toolkit = new FChoice.Toolkits.Clarify.Logistics.LogisticsToolkit( session );
            FChoice.Toolkits.Clarify.Logistics.AddAlternatePartSetup setup;

            switch( setupParam.ConstructorCue )
            {
                case 0:
                    setup = new FChoice.Toolkits.Clarify.Logistics.AddAlternatePartSetup(setupParam.PartNumber, setupParam.PartRevision, setupParam.PartDomain, setupParam.AlternatePartNumber, setupParam.AlternatePartRevision, setupParam.AlternatePartDomain);
                    break;
                default:
                    throw new InvalidOperationException(string.Format("Constructor index '{0}' does not exist.", setupParam.ConstructorCue));
            }

            if( Global.IsPropertyDirty(1, setupParam.DirtyFieldFlags) )
            {
                setup.PartNumber = setupParam.PartNumber;
            }

            if( Global.IsPropertyDirty(2, setupParam.DirtyFieldFlags) )
            {
                setup.PartRevision = setupParam.PartRevision;
            }

            if( Global.IsPropertyDirty(4, setupParam.DirtyFieldFlags) )
            {
                setup.PartDomain = setupParam.PartDomain;
            }

            if( Global.IsPropertyDirty(8, setupParam.DirtyFieldFlags) )
            {
                setup.AlternatePartNumber = setupParam.AlternatePartNumber;
            }

            if( Global.IsPropertyDirty(16, setupParam.DirtyFieldFlags) )
            {
                setup.AlternatePartRevision = setupParam.AlternatePartRevision;
            }

            if( Global.IsPropertyDirty(32, setupParam.DirtyFieldFlags) )
            {
                setup.AlternatePartDomain = setupParam.AlternatePartDomain;
            }

            if( Global.IsPropertyDirty(64, setupParam.DirtyFieldFlags) )
            {
                setup.IsReciprocal = setupParam.IsReciprocal;
            }

            return new Protocols.ToolkitResultProtocol( toolkit.AddAlternatePart(setup) );
        }