public XDocument Handle(WfsGetCapabilitiesParameters requestParameters) { WfsSupportedVersionEnum version; // handle 'AcceptVersions' request parameter if (requestParameters.AcceptVersions != null) { version = GetAcceptableVersion(requestParameters.AcceptVersions); } // handle 'Version' request parameter // according to specification, if both params are set (version and acceptVersion) // version parameter should be omitted else if (!string.IsNullOrEmpty(requestParameters.Version) && requestParameters.AcceptVersions == null) { version = GetSupportedVersionForRequestedVersion(requestParameters.Version); } // if no version parameter is set, use highets supported version else { version = WfsSupportedVersionEnum._1_1_0; } // load XML document var path = Path.Combine(Path.Combine(TemplatesPath, WFS_CapabilitiesTemplate_Prefix + version + Wfs_Template_Extension)); if (!File.Exists(path)) { throw new FileNotFoundException($"XML template for version {ParseEnumVersionToVersionFormat(version)} was not found."); } var xmlTemplate = path; var doc = XDocument.Load(xmlTemplate); // handle 'section' request parameter if (requestParameters.Sections != null) { HandleResultSections(requestParameters.Sections, doc); } return(doc); }
public override XDocument Handle(HttpGetRequestQuery requestParameters) { var request = ParseRequest <WfsSupportedOperationEnum>(requestParameters.Request); switch (request) { case WfsSupportedOperationEnum.GetCapabilities: // return resolveManager.Resolve<WfsGetCapabilitiesHandler>().Handle(requestParameters); var parameters = new WfsGetCapabilitiesParameters(); return(resolveManager.Resolve <WfsGetCapabilitiesHandler>().Handle(parameters)); case WfsSupportedOperationEnum.DescribeFeatureType: return(resolveManager.Resolve <WfsDescribeFeatureType>().Handle(requestParameters)); case WfsSupportedOperationEnum.GetFeature: return(resolveManager.Resolve <WfsGetFeatureHandler>().Handle(requestParameters)); default: throw new ArgumentOutOfRangeException(); } }
public override XDocument Handle(HttpGetRequestQuery requestParameters) { var parameters = new WfsGetCapabilitiesParameters(); return(Handle(parameters)); }