Esempio n. 1
0
        public XmlDocument DescribeFeatureType(int datasetId, DescribeFeatureTypeType describefeaturetype1)
        {
            var dataset = from d in db.Datasets where d.DatasetId == datasetId select d;

            string serviceUrl = dataset.First().TransformationConnection;

            if (serviceUrl.Contains("?"))
            {
                serviceUrl = serviceUrl.Split('?')[0];
            }

            Dictionary <string, string> parameters = new Dictionary <string, string>()
            {
                { "service", describefeaturetype1.service },
                { "version", describefeaturetype1.version },
                { "request", "DescribeFeatureType" },
                //{"outputFormat",describefeaturetype1.outputFormat},
            };
            string typeNames = "";

            foreach (var VARIABLE in describefeaturetype1.TypeName)
            {
                if (string.IsNullOrEmpty(VARIABLE.Namespace))
                {
                    typeNames += VARIABLE.Name + ",";
                }
                else
                {
                    typeNames += VARIABLE.Namespace + ":" + VARIABLE.Name + ",";
                }
            }

            parameters["typeNames"] = typeNames.TrimEnd(',');

            string queryUrl = serviceUrl + "?" + DictToString(parameters, "=", "&");

            XmlDocument xmlDoc = new XmlDocument();

            try
            {
                xmlDoc.Load(queryUrl);
            }
            catch
            {
                parameters.Remove("typeNames");
                queryUrl = serviceUrl + "?" + DictToString(parameters, "=", "&");
                xmlDoc.Load(queryUrl);
            }

            return(xmlDoc);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="datasetId"></param>
 /// <param name="describefeaturetype1"></param>
 /// <returns></returns>
 public object DescribeFeatureType(string datasetId, DescribeFeatureTypeType describefeaturetype1)
 {
     try
     {
         int numDatasetId = 0;
         int.TryParse(datasetId, out numDatasetId);
         ChangelogManager mng = new ChangelogManager(db);
         return(mng.DescribeFeatureType(numDatasetId, describefeaturetype1));
     }
     catch (Exception ex)
     {
         throw new FaultException(ex.Message);
     }
 }