Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        public override XDocument Handle(HttpGetRequestQuery requestParameters)
        {
            var parameters = new WfsGetCapabilitiesParameters();

            return(Handle(parameters));
        }