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); } }