public void GetSubregisterItemByName()
        {
            Models.Register register = NewRegister("Register name");
            register.parentRegister = NewRegister("parent name");
            List <Models.RegisterItem> versions = GetListOfVersions("itemName", register, "Kartverket");

            var registerItemService = new Mock <IRegisterItemService>();

            registerItemService.Setup(s => s.GetAllVersionsOfItem(register.parentRegister.seoname, register.seoname, "itemname")).Returns(versions);
            var controller = createController(url, null, registerItemService.Object);
            var result     = controller.GetSubregisterItemByName(register.parentRegister.seoname, register.seoname, "itemname", null) as OkNegotiatedContentResult <Models.Api.Registeritem>;

            Models.Api.Registeritem actualVersions = result.Content;
            actualVersions.label.Should().Be("itemName");
        }
        public void GetCurrentAndOtherVersions()
        {
            Models.Register     register = NewRegister("Register name");
            List <RegisterItem> versions = GetListOfVersions("itemName", register, "Kartverket");

            var registerItemService = new Mock <IRegisterItemService>();
            var registerService     = new Mock <IRegisterService>();

            registerItemService.Setup(s => s.GetAllVersionsOfItem(null, register.seoname, versions[0].seoname)).Returns(versions);
            registerService.Setup(r => r.GetRegister(null, register.seoname)).Returns(register);

            var controller = createController(url, registerService.Object, registerItemService.Object);
            var result     = controller.GetRegisterItemByName(register.seoname, "itemname") as OkNegotiatedContentResult <Models.Api.Registeritem>;

            Models.Api.Registeritem actualCurrentVersion = result.Content;
            actualCurrentVersion.versions.Count.Should().Be(4);
        }
Beispiel #3
0
        private void BuildSKOSFeed(object models, Stream stream, string contenttype)
        {
            if (models is Models.Api.Register)
            {
                Models.Api.Register register = (Models.Api.Register)models;

                string targetNamespace = "";
                string nameSpace       = "";
                if (register.targetNamespace != null)
                {
                    nameSpace = register.targetNamespace;
                    if (register.targetNamespace.EndsWith("/"))
                    {
                        targetNamespace = register.targetNamespace + register.label;
                    }
                    else
                    {
                        targetNamespace = register.targetNamespace + "/" + register.label;
                    }
                }

                XNamespace ns    = "http://www.opengis.net/gml/3.2";
                XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance";
                XNamespace gmlNs = "http://www.opengis.net/gml/3.2";
                XElement   xdoc  =
                    new XElement(gmlNs + "Dictionary", new XAttribute(XNamespace.Xmlns + "xsi", xsiNs),
                                 new XAttribute(XNamespace.Xmlns + "gml", gmlNs),
                                 new XAttribute(xsiNs + "schemaLocation", "http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/gml.xsd"),
                                 new XAttribute(gmlNs + "id", GetGmlId(register)),
                                 new XElement(gmlNs + "description"),
                                 new XElement(gmlNs + "identifier",
                                              new XAttribute("codeSpace", register.id), register.label),

                                 from k in register.containeditems
                                 select new XElement(gmlNs + "dictionaryEntry", new XElement(gmlNs + "Definition", new XAttribute(gmlNs + "id", GetGmlId(k)),
                                                                                             new XElement(gmlNs + "metaDataProperty", new XElement(gmlNs + "GenericMetaData",
                                                                                                                                                   new XElement("status", new XAttribute(xsiNs + "type", "gml:StringOrRefType"), k.status),
                                                                                                                                                   GetValidTime(k, gmlNs))),
                                                                                             new XElement(gmlNs + "description", k.description),
                                                                                             new XElement(gmlNs + "identifier", new XAttribute("codeSpace", register.id), !string.IsNullOrEmpty(k.codevalue) ? k.codevalue : k.seoname),
                                                                                             new XElement(gmlNs + "name", k.label)
                                                                                             )));

                using (XmlWriter writer = XmlWriter.Create(stream))
                {
                    xdoc.WriteTo(writer);
                }
            }
            else if (models is Models.Api.Registeritem)
            {
                Models.Api.Registeritem register = (Models.Api.Registeritem)models;

                XNamespace ns    = "http://www.opengis.net/gml/3.2";
                XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance";
                XNamespace gmlNs = "http://www.opengis.net/gml/3.2";
                XElement   xdoc  =
                    new XElement(gmlNs + "Dictionary", new XAttribute(XNamespace.Xmlns + "xsi", xsiNs),
                                 new XAttribute(XNamespace.Xmlns + "gml", gmlNs),
                                 new XAttribute(xsiNs + "schemaLocation", "http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/gml.xsd"),
                                 new XAttribute(gmlNs + "id", GetGmlId(register)),
                                 new XElement(gmlNs + "metaDataProperty", new XElement(gmlNs + "GenericMetaData",
                                                                                       new XElement("status", new XAttribute(xsiNs + "type", "gml:StringOrRefType"), register.status),
                                                                                       GetValidTime(register, gmlNs))),
                                 new XElement(gmlNs + "description", register.description),
                                 new XElement(gmlNs + "identifier", new XAttribute("codeSpace", GetCodespace(register)), register.codevalue),
                                 new XElement(gmlNs + "name", register.label)
                                 );

                using (XmlWriter writer = XmlWriter.Create(stream))
                {
                    xdoc.WriteTo(writer);
                }
            }
        }
 public IHttpActionResult GetSubregisterItemByName(string parentregister, string register, string item, string id = null)
 {
     SetLanguage(Request);
     Models.Api.Registeritem currentVersion = ConvertCurrentAndVersions(parentregister, register, item);
     return(Ok(currentVersion));
 }