Exemplo n.º 1
0
        private void ParseParameters(Parameters Request)
        {
            if (Request["REQUEST"] == null)
            {
                WriteError("mandatory REQUEST parameter is missing");
            }
            switch (Request["REQUEST"].ToUpper())
            {
            case "GETCAPABILITIES":
                _requestType = WFSRequestType.GetCapabilities;
                break;

            case "DESCRIBEFEATURETYPE":
                _requestType = WFSRequestType.DescribeFeatureType;
                break;

            case "GETFEATURE":
                _requestType = WFSRequestType.GetFeature;
                break;
            }
            if (Request["VERSION"] == null)
            {
                WriteError("mandatory VERSION parameter is missing");
            }
            _version = Request["VERSION"];

            if (Request["TYPENAME"] == null && _requestType != WFSRequestType.GetCapabilities)
            {
                WriteError("mandatory VERSION parameter is missing");
            }
            _typeName = Request["TYPENAME"];

            if (Request["MAXFEATURES"] != null)
            {
                _maxFeatures = int.Parse(Request["MAXFEATURES"]);
            }

            if (Request["FILTER"] != null)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(Request["FILTER"]);
                _filter = doc.SelectSingleNode("Filter");
            }
        }
Exemplo n.º 2
0
        public bool ParseParameters(XmlDocument doc)
        {
            if (doc == null)
            {
                return(false);
            }
            XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable);

            ns.AddNamespace("WFS", "http://www.opengis.net/wfs");
            ns.AddNamespace("OGC", "http://www.opengis.net/ogc");

            XmlNode request = doc.SelectSingleNode("WFS:GetCapabilities", ns);

            if (request != null)
            {
                _requestType = WFSRequestType.GetCapabilities;
            }

            if (request == null)
            {
                request = doc.SelectSingleNode("WFS:DescribeFeatureType", ns);
                if (request != null)
                {
                    _requestType = WFSRequestType.DescribeFeatureType;
                }
            }

            if (request == null)
            {
                request = doc.SelectSingleNode("WFS:GetFeature", ns);

                if (request != null)
                {
                    _requestType = WFSRequestType.GetFeature;
                }
            }

            if (request == null)
            {
                return(false);
            }

            if (request.Attributes["version"] == null)
            {
                WriteError("mandatory VERSION parameter is missing");
            }
            _version = request.Attributes["version"].Value;
            if (request.Attributes["maxfeatures"] != null)
            {
                _maxFeatures = int.Parse(request.Attributes["maxfeatures"].Value);
            }
            else if (request.Attributes["maxFeatures"] != null)
            {
                _maxFeatures = int.Parse(request.Attributes["maxFeatures"].Value);
            }

            XmlNode query = request.SelectSingleNode("WFS:Query[@typeName]", ns);

            if (query != null)
            {
                _typeName = query.Attributes["typeName"].Value;

                _filter = query.SelectSingleNode("Filter", ns);
                if (_filter == null)
                {
                    _filter = query.SelectSingleNode("WFS:Filter", ns);
                }
                if (_filter == null)
                {
                    _filter = query.SelectSingleNode("OGC:Filter", ns);
                }

                _sortBy = query.SelectSingleNode("SortBy", ns);
                if (_sortBy == null)
                {
                    _sortBy = query.SelectSingleNode("WFS:SortBy", ns);
                }
                if (_sortBy == null)
                {
                    _sortBy = query.SelectSingleNode("OGC:SortBy", ns);
                }

                if (query.Attributes["srsName"] != null)
                {
                    _srsName = query.Attributes["srsName"].Value;
                }
            }

            XmlNode typeName = request.SelectSingleNode("WFS:TypeName", ns);

            if (typeName != null)
            {
                _typeName = typeName.InnerText;
            }
            return(true);
        }