Server spatial query server object extension
SpatialQuerySOE.Interfaces_CSharp\Interfaces.cs
// Copyright 2010 ESRI
// 
// All rights reserved under the copyright laws of the United States
// and applicable international laws, treaties, and conventions.
// 
// You may freely redistribute and use this sample code, with or
// without modification, provided you include the original copyright
// notice and use restrictions.
// 
// See the use restrictions.
// 

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace SpatialQuerySOE.Interfaces
{
    /// <summary>
    /// Allows execution of Spatial Query SOE's logic
    /// </summary>
    [GuidAttribute("9D47D51C-F2B8-4381-8FA7-A6E1E1E9792F")]
    public interface IExtension
    {
        /// <summary>
        /// Queries the SOE's layer and field at the specified point and distance
        /// </summary>
        /// <param name="point">the point at which to center the query circle</param>
        /// <param name="distance">the radius of the query circle</param>
        /// <returns>An IResults object containing the features intersecting the query circle and the values in the SOE field</returns>
        IResults QueryPoint(ESRI.ArcGIS.Geometry.IPoint point, double distance);
    }

    /// <summary>
    /// Container for the results returned by the Spatial Query SOE
    /// </summary>
    [GuidAttribute("19A98B11-1EDE-4470-88FD-007F4B7BD05F")]
    public interface IResults
    {
        /// <summary>
        /// Graphics representing the geometries of the features intersecting the query area
        /// </summary>
        ESRI.ArcGIS.Carto.IGraphicElements ResultsGraphics { get; set; }

        /// <summary>
        /// The area per field value for features within the search area for the field specified 
        /// in the SOE configuration
        /// </summary>
        ESRI.ArcGIS.Geodatabase.IRecordSet SummaryStatistics { get; set; }
    }
}