private void ConvertBriefRecordField(Types.AbstractRecord briefRecord, IRecord record, Filter.XPathTypeNavigator navigator) { var r = briefRecord as Types.BriefRecord; IList <DC11.DCelement> elements = CreateRecordField(record, navigator); if (elements.Count == 0) { return; } switch (navigator.LocalName) { case "identifier": r.identifier = elements.Cast <DC11.identifier>().ToList <DC11.identifier>(); break; case "title": r.title = elements.Cast <DC11.title>().ToList <DC11.title>(); break; case "type": r.type = (DC11.type)elements[0]; break; } }
private void ConvertFullRecordField(Types.AbstractRecord fullRecord, IRecord record, Filter.XPathTypeNavigator navigator) { var r = fullRecord as Types.Record; if (navigator.LocalName == "BoundingBox") { object value = navigator.GetValue(record); if (value == null) { return; } // Covariance is a feature of .NET 4.0 http://msdn.microsoft.com/en-us/library/dd233059.aspx var ensg = value as IEnumerable <ISimpleGeometry>; if (ensg == null) { var geom = value as ISimpleGeometry; if (geom != null) { ensg = new ISimpleGeometry[] { geom } } ; } foreach (ISimpleGeometry g in ensg) { try { var box = new Ows100.BoundingBox(); box.InitFromGeometry(g); r.BoundingBox.Add(box); } catch (Exception ex) { try { Logger.Error(CultureInfo.InvariantCulture, m => m("Exception {0} occured while creating bounding box for geometry \"{1}\". Message: \"{2}\".", ex.GetType(), g, ex.Message)); } catch (Exception eex) { Logger.Error(CultureInfo.InvariantCulture, m => m("Exception {0} occured while logging exception {1}. Message: \"{2}\".", eex.GetType(), ex.GetType(), eex.Message)); } } } return; } IList <DC11.DCelement> elements = CreateRecordField(record, navigator); foreach (DC11.DCelement e in elements) { r.Content.DCelement.Add(e); } }
private void ConvertSummaryRecordField(Types.AbstractRecord summaryRecord, IRecord record, Filter.XPathTypeNavigator navigator) { var r = summaryRecord as Types.SummaryRecord; IList <DC11.DCelement> elements = CreateRecordField(record, navigator); if (elements.Count == 0) { return; } switch (navigator.LocalName) { case "abstract": r.@abstract = elements.Cast <DCTerms.@abstract>().ToList <DCTerms.@abstract>(); break; case "format": r.format = elements.Cast <DC11.format>().ToList <DC11.format>(); break; case "identifier": r.identifier = elements.Cast <DC11.identifier>().ToList <DC11.identifier>(); break; case "modified": r.modified = elements.Cast <DCTerms.modified>().ToList <DCTerms.modified>(); break; case "relation": r.relation = elements.Cast <DC11.relation>().ToList <DC11.relation>(); break; case "spatial": r.spatial = elements.Cast <DCTerms.spatial>().ToList <DCTerms.spatial>(); break; case "subject": r.subject = elements.Cast <DC11.subject>().ToList <DC11.subject>(); break; case "title": r.title = elements.Cast <DC11.title>().ToList <DC11.title>(); break; case "type": r.type = (DC11.type)elements[0]; break; } }