public Protocols.Interfaces.CreateEmployeeResultProtocol CreateEmployee(Protocols.Interfaces.CreateEmployeeSetupProtocol setupParam)
        {
            ClarifySession session = Global.GetSession( AuthHeader );
            FChoice.Toolkits.Clarify.Interfaces.InterfacesToolkit toolkit = new FChoice.Toolkits.Clarify.Interfaces.InterfacesToolkit( session );
            FChoice.Toolkits.Clarify.Interfaces.CreateEmployeeSetup setup;

            switch( setupParam.ConstructorCue )
            {
                case 0:
                    setup = new FChoice.Toolkits.Clarify.Interfaces.CreateEmployeeSetup(setupParam.FirstName, setupParam.LastName, setupParam.LoginName, setupParam.Password, setupParam.SiteIDNum, setupParam.Email, setupParam.OnlinePrivilegeClass);
                    break;
                default:
                    throw new InvalidOperationException(string.Format("Constructor index '{0}' does not exist.", setupParam.ConstructorCue));
            }

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

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

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

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

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

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

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

            if( Global.IsPropertyDirty(128, setupParam.DirtyFieldFlags) )
            {
                setup.Pager = setupParam.Pager;
            }

            if( Global.IsPropertyDirty(256, setupParam.DirtyFieldFlags) )
            {
                setup.OnlinePrivilegeClass = setupParam.OnlinePrivilegeClass;
            }

            if( Global.IsPropertyDirty(512, setupParam.DirtyFieldFlags) )
            {
                setup.OfflinePrivilegeClass = setupParam.OfflinePrivilegeClass;
            }

            if( Global.IsPropertyDirty(1024, setupParam.DirtyFieldFlags) )
            {
                setup.EmployeeIdentifier = setupParam.EmployeeIdentifier;
            }

            if( Global.IsPropertyDirty(2048, setupParam.DirtyFieldFlags) )
            {
                setup.IsActive = setupParam.IsActive;
            }

            if( Global.IsPropertyDirty(4096, setupParam.DirtyFieldFlags) )
            {
                setup.AllowProxy = setupParam.AllowProxy;
            }

            if( Global.IsPropertyDirty(8192, setupParam.DirtyFieldFlags) )
            {
                setup.StartDate = setupParam.StartDate;
            }

            if( Global.IsPropertyDirty(16384, setupParam.DirtyFieldFlags) )
            {
                setup.Supervisor = setupParam.Supervisor;
            }

            if( Global.IsPropertyDirty(32768, setupParam.DirtyFieldFlags) )
            {
                setup.WorkGroup = setupParam.WorkGroup;
            }

            if( Global.IsPropertyDirty(65536, setupParam.DirtyFieldFlags) )
            {
                setup.WorkGroupStartDate = setupParam.WorkGroupStartDate;
            }

            if( Global.IsPropertyDirty(131072, setupParam.DirtyFieldFlags) )
            {
                setup.LaborRate = setupParam.LaborRate;
            }

            if( Global.IsPropertyDirty(262144, setupParam.DirtyFieldFlags) )
            {
                setup.IsSupervisor = setupParam.IsSupervisor;
            }

            if( Global.IsPropertyDirty(524288, setupParam.DirtyFieldFlags) )
            {
                setup.IsFieldEngineer = setupParam.IsFieldEngineer;
            }

            if( Global.IsPropertyDirty(1048576, setupParam.DirtyFieldFlags) )
            {
                setup.NormalBusinessHoursHigh = setupParam.NormalBusinessHoursHigh;
            }

            if( Global.IsPropertyDirty(2097152, setupParam.DirtyFieldFlags) )
            {
                setup.NormalBusinessHoursMed = setupParam.NormalBusinessHoursMed;
            }

            if( Global.IsPropertyDirty(4194304, setupParam.DirtyFieldFlags) )
            {
                setup.NormalBusinessHoursLow = setupParam.NormalBusinessHoursLow;
            }

            if( Global.IsPropertyDirty(8388608, setupParam.DirtyFieldFlags) )
            {
                setup.AfterBusinessHoursHigh = setupParam.AfterBusinessHoursHigh;
            }

            if( Global.IsPropertyDirty(16777216, setupParam.DirtyFieldFlags) )
            {
                setup.AfterBusinessHoursMed = setupParam.AfterBusinessHoursMed;
            }

            if( Global.IsPropertyDirty(33554432, setupParam.DirtyFieldFlags) )
            {
                setup.AfterBusinessHoursLow = setupParam.AfterBusinessHoursLow;
            }

            if( Global.IsPropertyDirty(67108864, setupParam.DirtyFieldFlags) )
            {
                setup.DefaultWipBinTitle = setupParam.DefaultWipBinTitle;
            }

            if( Global.IsPropertyDirty(134217728, setupParam.DirtyFieldFlags) )
            {
                setup.ResourceConfig = setupParam.ResourceConfig;
            }

            if( Global.IsPropertyDirty(268435456, setupParam.DirtyFieldFlags) )
            {
                setup.DefaultTablespace = setupParam.DefaultTablespace;
            }

            if( Global.IsPropertyDirty(536870912, setupParam.DirtyFieldFlags) )
            {
                setup.TempTablespace = setupParam.TempTablespace;
            }

            if( Global.IsPropertyDirty(1073741824, setupParam.DirtyFieldFlags) )
            {
                foreach(Protocols.AdditionalFieldProtocol field in setupParam.AdditionalFields){setup.AdditionalFields.Append( field.FieldName, field.FieldType, field.FieldValue);}
            }

            return new Protocols.Interfaces.CreateEmployeeResultProtocol( toolkit.CreateEmployee(setup) );
        }
        public Protocols.Interfaces.CreateEmployeeResultProtocol CreateEmployee(System.String firstName, System.String lastName, System.String loginName, System.String password, System.String siteIDNum, System.String email, System.String onlinePrivilegeClass)
        {
            ClarifySession session = Global.GetSession( AuthHeader );
            FChoice.Toolkits.Clarify.Interfaces.InterfacesToolkit toolkit = new FChoice.Toolkits.Clarify.Interfaces.InterfacesToolkit( session );

            return new Protocols.Interfaces.CreateEmployeeResultProtocol( toolkit.CreateEmployee(firstName, lastName, loginName, password, siteIDNum, email, onlinePrivilegeClass) );
        }