private void ReadGetCapabilities(geosyncDBEntities db, REP_CapabilitiesType rootCapabilities)
        {
            //Build Cababilities.XML
            //ServiceIndentification
            Dataset ds;

            m_DatasetBindingList = new MySortableBindingList <Dataset>();
            foreach (DatasetType dst in rootCapabilities.datasets)
            {
                ds           = db.CreateObject <Dataset>();
                ds.EntityKey = db.CreateEntityKey("Dataset", ds);

                ds.ProviderDatasetId = dst.datasetId;
                ds.Name = dst.name;
                DomainType dt = GetConstraint("CountDefault", rootCapabilities.OperationsMetadata.Constraint);
                if (dt != null)
                {
                    ds.MaxCount = Convert.ToInt32(dt.DefaultValue.Value);
                }
                ds.Applicationschema = dst.applicationSchema;
                Operation op = GetOperation("OrderChangelog", rootCapabilities.OperationsMetadata.Operation);
                if (op != null)
                {
                    string PostUrl = GetPostURL(op.DCP);
                    ds.SyncronizationUrl = PostUrl;
                }
                m_DatasetBindingList.Add(ds);
            }
        }
        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);
        }
Exemple #3
0
        public REP_CapabilitiesType GetCapabilities()
        {
            //Build Cababilities.XML
            //ServiceIndentification
            REP_CapabilitiesType rootCapabilities = new REP_CapabilitiesType();

            rootCapabilities.version = "2.0.0";

            rootCapabilities.ServiceIdentification = new ServiceIdentification();
            //Title
            IList <string> values = new List <string>();

            values.Add(ServiceData.Title());
            rootCapabilities.ServiceIdentification.Title = CreateNode(values);

            values = new List <string>();
            values.Add(ServiceData.Abstract());
            //Abstract
            rootCapabilities.ServiceIdentification.Abstract = CreateNode(values);

            //Keywords
            KeywordsType keyWords = new KeywordsType();

            //TODO: Sjekk om dette fungerer!!!
            values              = ServiceData.Keywords();
            keyWords.Keyword    = CreateNode(values);
            keyWords.Type       = new CodeType();
            keyWords.Type.Value = "String";
            List <KeywordsType> lstDesc = new List <KeywordsType>();

            lstDesc.Add(keyWords);
            rootCapabilities.ServiceIdentification.Keywords = lstDesc.ToArray();



            //<ows:ServiceType>WFS</ows:ServiceType>

            //TODO: Legg til felt i databasen
            rootCapabilities.ServiceIdentification.ServiceType       = new CodeType();
            rootCapabilities.ServiceIdentification.ServiceType.Value = "WFS";

            //<ows:ServiceTypeVersion>2.0.0</ows:ServiceTypeVersion><ows:ServiceTypeVersion>1.1.0</ows:ServiceTypeVersion><ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
            //TODO Legg til felt i basen.
            rootCapabilities.ServiceIdentification.ServiceTypeVersion    = new string[3];
            rootCapabilities.ServiceIdentification.ServiceTypeVersion[0] = "2.0.0";
            rootCapabilities.ServiceIdentification.ServiceTypeVersion[1] = "1.1.0";
            rootCapabilities.ServiceIdentification.ServiceTypeVersion[2] = "1.0.0";


            rootCapabilities.ServiceIdentification.Fees = ServiceData.Fees();
            rootCapabilities.ServiceIdentification.AccessConstraints = CreateNode(ServiceData.AccessConstraints());

            ////ServiceProvider
            rootCapabilities.ServiceProvider = new ServiceProvider();
            rootCapabilities.ServiceProvider.ProviderName = ServiceData.ProviderName();

            rootCapabilities.ServiceProvider.ProviderSite      = new OnlineResourceType();
            rootCapabilities.ServiceProvider.ProviderSite.href = ServiceData.ProviderSite();

            rootCapabilities.ServiceProvider.ServiceContact = new ResponsiblePartySubsetType();
            rootCapabilities.ServiceProvider.ServiceContact.IndividualName = ServiceData.IndividualName();
            rootCapabilities.ServiceProvider.ServiceContact.PositionName   = ""; //TODO: Lgg i basen. Innstilling for dette

            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo       = new ContactType();
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Phone = new TelephoneType();

            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Phone.Voice                   = CreateNode(ServiceData.Phone());
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Phone.Facsimile               = CreateNode(ServiceData.Fax());
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Address                       = new AddressType();
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Address.DeliveryPoint         = CreateNode(ServiceData.Adresse());
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Address.City                  = ServiceData.City();
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Address.AdministrativeArea    = ServiceData.City();
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Address.Country               = ServiceData.Country();
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.Address.ElectronicMailAddress = CreateNode(ServiceData.EMail());
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.OnlineResource                = new OnlineResourceType();
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.OnlineResource.href           = ServiceData.OnlineResourcesUrl();
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.HoursOfService                = ServiceData.HoursOfService();
            rootCapabilities.ServiceProvider.ServiceContact.ContactInfo.ContactInstructions           = ServiceData.ContactInstructions();
            rootCapabilities.ServiceProvider.ServiceContact.Role       = new CodeType();
            rootCapabilities.ServiceProvider.ServiceContact.Role.Value = ServiceData.Role();

            rootCapabilities.OperationsMetadata = new OperationsMetadata();
            List <Operation> listLst       = new List <Operation>();
            Operation        operationNode = CreateOperation("GetCapabilities", "Acceptversions", "2.0.0"); //TODO, må inn i databasen

            listLst.Add(operationNode);
            operationNode = CreateOperation("DescribeFeatureType", "", "");
            listLst.Add(operationNode);
            operationNode = CreateOperation("ListStoredChangelog", "", "");
            listLst.Add(operationNode);
            operationNode = CreateOperation("OrderChangelog", "", "");
            listLst.Add(operationNode);
            operationNode = CreateOperation("GetChangelogStatus", "", "");
            listLst.Add(operationNode);
            rootCapabilities.OperationsMetadata.Operation = listLst.ToArray();
            List <DomainType> lstDomain = new List <DomainType>();

            lstDomain.Add(CreateParameter("version", "2.0.0"));
            rootCapabilities.OperationsMetadata.Parameter = lstDomain.ToArray();
            List <DomainType> lstConstraints = new List <DomainType>();

            lstConstraints.Add(CreateConstraints("ImplementsReplicationWFS", "TRUE"));
            lstConstraints.Add(CreateConstraints("ImplementsTransactionalWFS", "FALSE"));
            lstConstraints.Add(CreateConstraints("ImplementsLockingWFS", "FALSE"));
            lstConstraints.Add(CreateConstraints("KVPEncoding", "TRUE"));
            lstConstraints.Add(CreateConstraints("XMLEncoding", "FALSE"));
            lstConstraints.Add(CreateConstraints("SOAPEncoding", "FALSE"));
            lstConstraints.Add(CreateConstraints("ImplementsInheritance", "FALSE"));
            lstConstraints.Add(CreateConstraints("ImplementsRemoteResolve", "FALSE"));
            lstConstraints.Add(CreateConstraints("ImplementsResultPaging", "FALSE"));
            lstConstraints.Add(CreateConstraints("ImplementsStandardJoins", "FALSE"));
            lstConstraints.Add(CreateConstraints("ImplementsSpatialJoins", "FALSE"));
            lstConstraints.Add(CreateConstraints("ImplementsTemporalJoins", "FALSE"));
            lstConstraints.Add(CreateConstraints("ImplementsFeatureVersioning", "FALSE"));
            lstConstraints.Add(CreateConstraints("ManageStoredQueries", "FALSE"));
            lstConstraints.Add(CreateConstraints("CountDefault", "1000")); //TODO: Legge denne verdie for servicen.
            lstConstraints.Add(CreateParameter("QueryExpressions", "wfs:StoredQuery"));
            rootCapabilities.OperationsMetadata.Constraint = lstConstraints.ToArray();


            rootCapabilities.datasets = CreateDatasets();

            return(rootCapabilities);
        }