public static Svc.Event ToServiceObject(this Event ev, IKeyMappingService mapping) { if (ev.CollectionEventID != null) throw new ArgumentException("Event already uploaded"); var seriesID = (ev.SeriesID.HasValue) ? mapping.EnsureKey(DBObjectType.EventSeries, ev.SeriesID.Value) as int? : null; return new Svc.Event() { CollectionEventID = Int32.MinValue, CollectionSeriesID = seriesID, Altitude = ev.Altitude, CollectionDate = ev.CollectionDate, HabitatDescription = ev.HabitatDescription, Latitude = ev.Latitude, LocalityDescription = ev.LocalityDescription, Longitude = ev.Longitude, }; }
public static Svc.IdentificationUnit ToServiceObject(this IdentificationUnit iu, IKeyMappingService mapping) { var specID = mapping.EnsureKey(DBObjectType.Specimen, iu.SpecimenID); var relUnitID = (iu.RelatedUnitID.HasValue) ? mapping.EnsureKey(DBObjectType.IdentificationUnit, iu.RelatedUnitID.Value) as int? : null; return new Svc.IdentificationUnit() { CollectionUnitID = Int32.MinValue, CollectionSpecimenID = specID, CollectionRelatedUnitID = relUnitID, Altitude = iu.Altitude, AnalysisDate = iu.AnalysisDate, IdentificationUri = iu.IdentificationUri, LastIdentificationCache = iu.WorkingName, Qualification = iu.Qualification, Latitude = iu.Latitude, Longitude = iu.Longitude, OnlyObserved = iu.OnlyObserved, RelationType = iu.RelationType, TaxonomicGroup = iu.TaxonomicGroup, }; }
public static Svc.MultimediaObject ToServiceObject(this MultimediaObject mmo, IKeyMappingService mapping) { var relID = mapping.EnsureKey(mmo.OwnerType, mmo.RelatedId); return new Svc.MultimediaObject() { MediaType = mmo.MediaType.ToServiceObject(), OwnerType = mmo.OwnerType.ToServiceObject(), RelatedCollectionID = relID, Uri = mmo.CollectionURI }; }
public static Svc.Specimen ToServiceObject(this Specimen spec, IKeyMappingService mapping) { var eventID = mapping.EnsureKey(DBObjectType.Event, spec.EventID); return new Svc.Specimen() { CollectionSpecimenID = Int32.MinValue, CollectionEventID = eventID, AccessionNumber = spec.AccessionNumber, }; }