コード例 #1
0
        public static XElement SpanDates(SNode item, SNode excepted)
        {
            string   df     = item.DateFirst();
            string   dl     = item.DateLast();
            XElement xdates = (!String.IsNullOrEmpty(df) || !String.IsNullOrEmpty(dl)) ?
                              new XElement("span", //new XAttribute("class", "date"),
                                                   // "[" +
                                           SSNodeExt.DatePrinted(df) + (dl != null ? "-" + SSNodeExt.DatePrinted(dl) : "")
                                                   //+ "]"
                                           )
                    : null;
            IEnumerable <XObject> xPlaces =
                from inDoc in item.InverseProperties("in-doc")
                let ground = inDoc.AllElseProps <SDataLink>().FirstOrDefault(g => g.Definition.Id == "ground")
                             where ground != null && ground.InnerText == "place"
                             let reflectedPlace = inDoc.AllElseProps <SObjectLink>().FirstOrDefault(refl => refl.Definition.Id == "reflected")
                                                  where reflectedPlace != null && reflectedPlace.Target != null && reflectedPlace.Target != excepted &&
                                                  reflectedPlace.Target.Name() != String.Empty
                                                  select new XElement("span", reflectedPlace.Target.Name());

            //,new XAttribute("href", "?id="+reflectedPlace.TargetId));
            return(new XElement("span",
                                new XAttribute("style", "text-align:center;"),
                                xdates, xdates != null && xPlaces.Any() ? ", " : null,
                                EnumExtensions.InsertSplitter(xPlaces, new XText(", "))));
        }
コード例 #2
0
        public static XObject DmDataField(SGraph.SNode item, SGraph.ROntologyDatatypePropertyDefinition prop)
        {
            string str        = null;
            var    range_name = prop.DirectObjectLinks("range")
                                .Select(p => p.TargetId).FirstOrDefault();

            if (range_name == "string")
            {
                str = item.DataField(prop.Id);
            }
            else if (range_name == "date")
            {
                str = item.DataField(prop.Id);
                str = SSNodeExt.DatePrinted(str);
            }
            else if (range_name == "text")
            {
                str = item.TextField(prop.Id, "ru");
            }
            else if (range_name == "Email")
            {
                str = item.TextField(prop.Id, "ru");
            }
            else if (range_name == "URI")
            {
                string uri_text = item.DataField(prop.Id);
                return(uri_text != null
                           ? new XElement("a",
                                          new XAttribute("href", uri_text),
                                          new XAttribute("target", "external"),
                                          uri_text)
                           : null);
            }
            else if (range_name != null)
            {
                var range_def = StaticModels.sDataModel.OntologyModel.GetItemById(range_name);
                if (range_def != null && range_def.Definition.Id == "EnumerationType")
                {
                    string enum_value = item.DataField(prop.Id);
                    if (enum_value != null)
                    {
                        str = range_def.DirectProperties().Where(p => p.Definition.Id == "state").Cast <SGraph.SDataLink>()
                              .Select(p => p.XOriginal).Where(px =>
                                                              px.Attribute("value").Value == enum_value &&
                                                              px.Attribute(SGraph.SNames.xmllang).Value == "ru")
                              .Select(px => px.Value).FirstOrDefault();
                    }
                }
            }
            return(str == null ? null : new XText(str));
        }