public void UpdateSite(Site site) { if (site.PosAreaType == 0) { if (site.PosX1.GetValueOrDefault(0) != 0 || site.PosY1.GetValueOrDefault(0) != 0) { site.PosAreaType = (int)AreaType.Point; } } StoredProcUpdate("spSiteUpdate", _P("intSiteID", site.SiteID), _P("vchrSiteName", site.SiteName), _P("intPoliticalRegionID", site.PoliticalRegionID), _P("tintLocalType", site.LocalityType), _P("vchrLocal", site.Locality), _P("vchrDistanceFromPlace", site.DistanceFromPlace), _P("vchrDirFromPlace", site.DirFromPlace), _P("vchrInformalLocal", site.InformalLocal), _P("tintPosCoordinates", site.PosCoordinates), _P("tintPosAreaType", site.PosAreaType), _P("fltPosX1", site.PosX1), _P("fltPosY1", site.PosY1), _P("fltPosX2", site.PosX2), _P("fltPosY2", site.PosY2), _P("tintPosXYDisplayFormat", site.PosXYDisplayFormat), _P("vchrPosSource", site.PosSource), _P("vchrPosError", site.PosError), _P("vchrPosWho", site.PosWho), _P("vchrPosDate", site.PosDate), _P("vchrPosOriginal", site.PosOriginal), _P("vchrPosUTMSource", site.PosUTMSource), _P("vchrPosUTMMapProj", site.PosUTMMapProj), _P("vchrPosUTMMapName", site.PosUTMMapName), _P("vchrPosUTMMapVer", site.PosUTMMapVer), _P("tintElevType", site.ElevType), _P("fltElevUpper", site.ElevUpper), _P("fltElevLower", site.ElevLower), _P("fltElevDepth", site.ElevDepth), _P("vchrElevUnits", site.ElevUnits), _P("vchrElevSource", site.ElevSource), _P("vchrElevError", site.ElevError), _P("vchrGeoEra", site.GeoEra), _P("vchrGeoState", site.GeoState), _P("vchrGeoPlate", site.GeoPlate), _P("vchrGeoFormation", site.GeoFormation), _P("vchrGeoMember", site.GeoMember), _P("vchrGeoBed", site.GeoBed), _P("vchrGeoName", site.GeoName), _P("vchrGeoAgeBottom", site.GeoAgeBottom), _P("vchrGeoAgeTop", site.GeoAgeTop), _P("vchrGeoNotes", site.GeoNotes) ); }
private int GetSiteNumber(int regionId) { // test to see if an internal number is present in the incoming dataset var existingSiteId = Get("Site.ExistingSiteID"); if (!String.IsNullOrEmpty(existingSiteId)) { var site = MaterialService.GetSite(Int32.Parse(existingSiteId)); if (site != null) { return site.SiteID; } } // No existing site found? need to create it var strLocal = Get("Site.Locality"); var strOffSetDis = Get("Site.Distance from place"); var strOffsetDir = Get("Site.Direction from place"); var strInformal = Get("Site.Informal Locality"); double? x1 = GetConvert<double?>("Site.Longitude", null); double? y1 = GetConvert<double?>("Site.Latitude", null); double? x2 = GetConvert<double?>("Site.Longitude 2", null); double? y2 = GetConvert<double?>("Site.Latitude 2", null); var iPosAreaType = GetPositionType(); int iLocalType = 0; // TODO? Can we workout what this is supposed to be? var iElevationType = GetElevationType(); int iCoordinateType; GetSiteCoordinates(out iCoordinateType, ref x1, ref y1, ref x2, ref y2); var strName = Get("Site.Site Name"); if (string.IsNullOrWhiteSpace(strName)) { strName = strLocal; } double? elevUpper = null; double? elevLower = null; double? elevDepth = null; string elevUnits = null; var elevResult = GetConvert<UnitRange>("Site.Elevation upper"); if (elevResult != null) { switch (elevResult.RangeType) { case UnitRangeType.SingleValueNoUnits: elevUpper = elevResult.Upper; break; case UnitRangeType.SingleValueWithUnits: elevUpper = elevResult.Upper; elevUnits = elevResult.Units; break; case UnitRangeType.RangeNoUnits: elevUpper = Math.Max(elevResult.Upper, elevResult.Lower); elevLower = Math.Min(elevResult.Upper, elevResult.Lower); ; break; case UnitRangeType.RangeWithUnits: elevUpper = Math.Max(elevResult.Upper, elevResult.Lower); elevLower = Math.Min(elevResult.Upper, elevResult.Lower); ; elevUnits = elevResult.Units; break; } } elevResult = GetConvert<UnitRange>("Site.Elevation lower"); if (elevResult != null) { switch (elevResult.RangeType) { case UnitRangeType.SingleValueNoUnits: elevLower = elevResult.Upper; break; case UnitRangeType.SingleValueWithUnits: elevLower = elevResult.Upper; elevUnits = elevResult.Units; break; case UnitRangeType.RangeNoUnits: elevUpper = Math.Max(elevResult.Upper, elevResult.Lower); elevLower = Math.Min(elevResult.Upper, elevResult.Lower); ; break; case UnitRangeType.RangeWithUnits: elevUpper = Math.Max(elevResult.Upper, elevResult.Lower); elevLower = Math.Min(elevResult.Upper, elevResult.Lower); ; elevUnits = elevResult.Units; break; } } var depthResult = GetConvert<UnitRange>("Site.Elevation depth"); if (depthResult != null) { switch (depthResult.RangeType) { case UnitRangeType.SingleValueNoUnits: elevDepth = depthResult.Upper; break; case UnitRangeType.SingleValueWithUnits: elevDepth = depthResult.Upper; elevUnits = depthResult.Units; break; case UnitRangeType.RangeNoUnits: elevUpper = Math.Min(depthResult.Upper, depthResult.Lower); elevLower = Math.Max(depthResult.Upper, depthResult.Lower); break; case UnitRangeType.RangeWithUnits: elevUpper = Math.Min(depthResult.Upper, depthResult.Lower); elevLower = Math.Max(depthResult.Upper, depthResult.Lower); elevUnits = depthResult.Units; break; } } // An explicit units mapping will override an implicit one inferred from a range, but if not, keep the inferred one, if any elevUnits = Get("Site.Elevation units", elevUnits); var cachedSite = FindCachedSite(strName, strLocal, strOffSetDis, strOffsetDir, strInformal, iLocalType, x1, y1, x2, y2); if (cachedSite != null) { return cachedSite.SiteID; } else { // Create the Site object from the source material.... var site = new Site { SiteName = strName, PoliticalRegionID = regionId, LocalityType = iLocalType, Locality = strLocal, DistanceFromPlace = strOffSetDis, DirFromPlace = strOffsetDir, InformalLocal = Get("Site.Informal locality"), PosCoordinates = iCoordinateType, PosAreaType = iPosAreaType, PosX1 = x1, PosY1 = y1, PosX2 = x2, PosY2 = y2, PosXYDisplayFormat = 1, PosSource = Get("Site.Position source"), PosError = Get("Site.Position error"), PosWho = Get("Site.Generated by"), PosDate = Get("Site.Generated on"), PosOriginal = Get("Site.Original position"), PosUTMSource = Get("Site.UTM source"), PosUTMMapProj = Get("Site.UTM map projection"), PosUTMMapName = Get("Site.UTM map name"), PosUTMMapVer = Get("Site.UTM map version"), ElevType = iElevationType, ElevUpper = elevUpper, ElevLower = elevLower, ElevDepth = elevDepth, ElevUnits = elevUnits, ElevSource = Get("Site.Elevation source"), ElevError = Get("Site.Elevation error"), GeoEra = Get("Site.Geological era"), GeoState = Get("Site.Geological state"), GeoPlate = Get("Site.Geological plate"), GeoFormation = Get("Site.Geological formation"), GeoMember = Get("Site.Geological member"), GeoBed = Get("Site.Geological bed"), GeoName = Get("Site.Geological name"), GeoAgeBottom = Get("Site.Geological age bottom"), GeoAgeTop = Get("Site.Geological age top"), GeoNotes = Get("Site.Geological notes") }; var siteID = Service.ImportSite(site); _siteCache.Add(new CachedSite { SourceRowID = CurrentRowId, Name = site.SiteName, Locality = site.Locality, OffsetDistance = site.DistanceFromPlace, OffsetDirection = site.DirFromPlace, InformalLocality = site.InformalLocal, X1 = site.PosX1, Y1 = site.PosY1, X2 = site.PosX2, Y2 = site.PosY2, LocalityType = site.LocalityType, SiteID = siteID }); if (_siteCache.Count > MAX_CACHED_ROWS) { // remove the oldest... _siteCache.RemoveAt(0); } return siteID; } }
public int ImportSite(Site site) { return StoredProcReturnVal("spSiteImportGetID", _P("vchrSiteName", site.SiteName), _P("intPoliticalRegionID", site.PoliticalRegionID), _P("tintLocalType", site.LocalityType), _P("vchrLocal", site.Locality), _P("vchrDistanceFromPlace", site.DistanceFromPlace), _P("vchrDirFromPlace", site.DirFromPlace), _P("vchrInformalLocal", site.InformalLocal), _P("tintPosCoordinates", site.PosCoordinates), _P("tintPosAreaType", site.PosAreaType), _P("fltPosX1", site.PosX1), _P("fltPosY1", site.PosY1), _P("fltPosX2", site.PosX2), _P("fltPosY2", site.PosY2), _P("tintPosXYDisplayFormat", site.PosXYDisplayFormat), _P("vchrPosSource", site.PosSource), _P("vchrPosError", site.PosError), _P("vchrPosWho", site.PosWho), _P("vchrPosDate", site.PosDate), _P("vchrPosOriginal", site.PosOriginal), _P("vchrPosUTMSource", site.PosUTMSource), _P("vchrPosUTMMapProj", site.PosUTMMapProj), _P("vchrPosUTMMapName", site.PosUTMMapName), _P("vchrPosUTMMapVer", site.PosUTMMapVer), _P("tintElevType", site.ElevType), _P("fltElevUpper", site.ElevUpper), _P("fltElevLower", site.ElevLower), _P("fltElevDepth", site.ElevDepth), _P("vchrElevUnits", site.ElevUnits), _P("vchrElevSource", site.ElevSource), _P("vchrElevError", site.ElevError), _P("vchrGeoEra", site.GeoEra), _P("vchrGeoState", site.GeoState), _P("vchrGeoPlate", site.GeoPlate), _P("vchrGeoFormation", site.GeoFormation), _P("vchrGeoMember", site.GeoMember), _P("vchrGeoBed", site.GeoBed), _P("vchrGeoName", site.GeoName), _P("vchrGeoAgeBottom", site.GeoAgeBottom), _P("vchrGeoAgeTop", site.GeoAgeTop), _P("vchrGeoNotes", site.GeoNotes) ); }