/// <summary>
        /// Executes the Service Object method and returns any data.
        /// </summary>
        /// <param name="inputs">A Property[] array containing all the allowed input properties.</param>
        /// <param name="required">A RequiredProperties collection containing the required properties.</param>
        /// <param name="returns">A Property[] array containing all the allowed return properties.</param>
        /// <param name="methodType">A MethoType indicating what type of Service Object method was called.</param>
        /// <param name="serviceObject">A ServiceObject containing populated properties for use with the method call.</param>
        public void Execute(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject)
        {
            this.GetConfiguration();

            if (serviceObject.Methods[0].Name.Equals("spsearch") || serviceObject.Methods[0].Name.Equals("spsearchraw") || serviceObject.Methods[0].Name.Equals("deserializesearchresults"))
            {
                SPSearch spsearch = new SPSearch(serviceBroker, this.Configuration);
                spsearch.ExecuteSearch(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("spsearchread") || serviceObject.Methods[0].Name.Equals("spsearchrawread"))
            {
                SPSearch spsearch = new SPSearch(serviceBroker, this.Configuration);
                spsearch.ExecuteSearchRead(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("listsourceidsstatic"))
            {
                SPSearch spsearch = new SPSearch(serviceBroker, this.Configuration);
                spsearch.ExecuteListSourceIds(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("listothersourceidsstatic"))
            {
                SPSearch spsearch = new SPSearch(serviceBroker, this.Configuration);
                spsearch.ExecuteListOtherSourceIds(inputs, required, returns, methodType, serviceObject);
            }


            if (serviceObject.Methods[0].Name.Equals("spsearchusers") || serviceObject.Methods[0].Name.Equals("deserializeusersearchresults"))
            {
                SPSearchUser spsearchuser = new SPSearchUser(serviceBroker, this.Configuration);
                spsearchuser.ExecuteSearch(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("spsearchusersread"))
            {
                SPSearchUser spsearchuser = new SPSearchUser(serviceBroker, this.Configuration);
                spsearchuser.ExecuteSearchRead(inputs, required, returns, methodType, serviceObject);
            }


            if (serviceObject.Methods[0].Name.Equals("spsearchdocuments") || serviceObject.Methods[0].Name.Equals("deserializedocumentsearchresults"))
            {
                SPSearchDocument spsearchdocumet = new SPSearchDocument(serviceBroker, this.Configuration);
                spsearchdocumet.ExecuteSearch(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("spsearchdocumentsread"))
            {
                SPSearchDocument spsearchdocumet = new SPSearchDocument(serviceBroker, this.Configuration);
                spsearchdocumet.ExecuteSearchRead(inputs, required, returns, methodType, serviceObject);
            }
        }
        /// <summary>
        /// Describes the schema of the underlying data and services to the K2 platform.
        /// </summary>
        public void DescribeSchema()
        {
            TypeMappings map = GetTypeMappings();

            SPSearch search = new SPSearch(serviceBroker, Configuration);

            search.Create();
            SPSearchUser usersearch = new SPSearchUser(serviceBroker, Configuration);

            usersearch.Create();
            SPSearchDocument documentsearch = new SPSearchDocument(serviceBroker, Configuration);

            documentsearch.Create();
        }
        /// <summary>
        /// Executes the Service Object method and returns any data.
        /// </summary>
        /// <param name="inputs">A Property[] array containing all the allowed input properties.</param>
        /// <param name="required">A RequiredProperties collection containing the required properties.</param>
        /// <param name="returns">A Property[] array containing all the allowed return properties.</param>
        /// <param name="methodType">A MethoType indicating what type of Service Object method was called.</param>
        /// <param name="serviceObject">A ServiceObject containing populated properties for use with the method call.</param>
        public void Execute(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject)
        {
            this.GetConfiguration();

            if (serviceObject.Methods[0].Name.Equals("spsearch") || serviceObject.Methods[0].Name.Equals("spsearchraw") || serviceObject.Methods[0].Name.Equals("deserializesearchresults"))
            {
                SPSearch spsearch = new SPSearch(serviceBroker, this.Configuration);
                spsearch.ExecuteSearch(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("spsearchread") || serviceObject.Methods[0].Name.Equals("spsearchrawread"))
            {
                SPSearch spsearch = new SPSearch(serviceBroker, this.Configuration);
                spsearch.ExecuteSearchRead(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("listsourceidsstatic"))
            {
                SPSearch spsearch = new SPSearch(serviceBroker, this.Configuration);
                spsearch.ExecuteListSourceIds(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("listothersourceidsstatic"))
            {
                SPSearch spsearch = new SPSearch(serviceBroker, this.Configuration);
                spsearch.ExecuteListOtherSourceIds(inputs, required, returns, methodType, serviceObject);
            }


            if (serviceObject.Methods[0].Name.Equals("spsearchusers") || serviceObject.Methods[0].Name.Equals("deserializeusersearchresults"))
            {
                SPSearchUser spsearchuser = new SPSearchUser(serviceBroker, this.Configuration);
                spsearchuser.ExecuteSearch(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("spsearchusersread"))
            {
                SPSearchUser spsearchuser = new SPSearchUser(serviceBroker, this.Configuration);
                spsearchuser.ExecuteSearchRead(inputs, required, returns, methodType, serviceObject);
            }


            if (serviceObject.Methods[0].Name.Equals("spsearchdocuments") || serviceObject.Methods[0].Name.Equals("deserializedocumentsearchresults"))
            {
                SPSearchDocument spsearchdocumet = new SPSearchDocument(serviceBroker, this.Configuration);
                spsearchdocumet.ExecuteSearch(inputs, required, returns, methodType, serviceObject);
            }

            if (serviceObject.Methods[0].Name.Equals("spsearchdocumentsread"))
            {
                SPSearchDocument spsearchdocumet = new SPSearchDocument(serviceBroker, this.Configuration);
                spsearchdocumet.ExecuteSearchRead(inputs, required, returns, methodType, serviceObject);
            }
        }
        /// <summary>
        /// Describes the schema of the underlying data and services to the K2 platform.
        /// </summary>
        public void DescribeSchema()
        {
            TypeMappings map = GetTypeMappings();

            SPSearch search = new SPSearch(serviceBroker, Configuration);
            search.Create();
            SPSearchUser usersearch = new SPSearchUser(serviceBroker, Configuration);
            usersearch.Create();
            SPSearchDocument documentsearch = new SPSearchDocument(serviceBroker, Configuration);
            documentsearch.Create();
        }