public CapabilitiesDataBuilder(string ProviderURL, string UserName, string Password)
        {
            geosyncDBEntities db = new geosyncDBEntities();

            WebFeatureServiceReplicationPortClient client = new WebFeatureServiceReplicationPortClient();

            client.ClientCredentials.UserName.UserName = UserName;
            client.ClientCredentials.UserName.Password = Password;

            client.Endpoint.Address = new System.ServiceModel.EndpointAddress(ProviderURL);

            GetCapabilitiesType1 req = new GetCapabilitiesType1();

            REP_CapabilitiesType rootCapabilities = client.GetCapabilities(req);

            ReadGetCapabilities(db, rootCapabilities);
        }
Ejemplo n.º 2
0
        public static IEnumerable <Dataset> ReadGetCapabilities(WebFeatureServiceReplicationPort client)
        {
            var datasets         = new List <Dataset>();
            var req              = new GetCapabilitiesType1();
            var rootCapabilities = client.GetCapabilities(req);

            //Build Cababilities.XML
            //ServiceIndentification
            foreach (var dst in rootCapabilities.datasets)
            {
                var precision = client.GetPrecision(dst.datasetId);
                var ds        = new Dataset
                {
                    ProviderDatasetId = dst.datasetId.Trim(),
                    Name      = dst.name.Trim(),
                    Version   = client.GetDatasetVersion(dst.datasetId).Trim(),
                    Tolerance = precision.tolerance,
                    EpsgCode  = precision.epsgCode,
                    Decimals  = precision.decimals
                };

                var dt = GetConstraint("CountDefault", rootCapabilities.OperationsMetadata.Constraint);
                if (dt != null)
                {
                    ds.MaxCount = Convert.ToInt32(dt.DefaultValue.Value);
                }
                ds.TargetNamespace = dst.applicationSchema;

                var op = GetOperation("OrderChangelog", rootCapabilities.OperationsMetadata.Operation);
                if (op != null)
                {
                    var postUrl = GetPostUrl(op.DCP);
                    ds.SyncronizationUrl = postUrl;
                }

                datasets.Add(ds);
            }

            return(datasets);
        }