private void GetHeaderInfo(string wellInfo) { LASHeaderMappings headMap = new LASHeaderMappings(); DataAccessDef dataType = _dataDef.First(x => x.DataType == "WellBore"); string input = null; Dictionary <string, string> header = new Dictionary <string, string>(); string[] attributes = Common.GetAttributes(dataType.Select); foreach (string attribute in attributes) { header.Add(attribute.Trim(), ""); } header["FINAL_TD"] = "99999.0"; header["SURFACE_LATITUDE"] = "99999.0"; header["SURFACE_LONGITUDE"] = "99999.0"; header["DEPTH_DATUM_ELEV"] = "99999.0"; header["GROUND_ELEV"] = "99999.0"; header["ASSIGNED_FIELD"] = "UNKNOWN"; header["OPERATOR"] = "UNKNOWN"; header["DEPTH_DATUM"] = "UNKNOWN"; header["CURRENT_STATUS"] = "UNKNOWN"; header.Add("API", ""); StringReader sr = new StringReader(wellInfo); while ((input = sr.ReadLine()) != null) { LASLine line = DecodeLASLine(input); if (!string.IsNullOrEmpty(line.Mnem)) { try { string key = headMap[line.Mnem]; header[key] = line.Data; if (key == "NULL") { _nullRepresentation = line.Data; } } catch (Exception) { } } } if (string.IsNullOrEmpty(header["UWI"])) { header["UWI"] = header["API"]; } if (string.IsNullOrEmpty(header["UWI"])) { header["UWI"] = header["LEASE_NAME"] + "-" + header["WELL_NAME"]; } string json = JsonConvert.SerializeObject(header, Formatting.Indented); _uwi = header["UWI"]; LoadHeader(json); }
private string GetHeaderInfo(string wellInfo) { LASHeaderMappings headMap = new LASHeaderMappings(); DataAccessDef dataType = _dataDef.First(x => x.DataType == "WellBore"); string input = null; Dictionary <string, string> header = new Dictionary <string, string>(); string[] attributes = Common.GetAttributes(dataType.Select); ColumnProperties attributeProperties = CommonDbUtilities.GetColumnSchema(_dbConn, dataType.Select); foreach (string attribute in attributes) { header.Add(attribute.Trim(), ""); } header["ASSIGNED_FIELD"] = "UNKNOWN"; header["OPERATOR"] = "UNKNOWN"; header["DEPTH_DATUM"] = "UNKNOWN"; header["CURRENT_STATUS"] = "UNKNOWN"; header["ROW_CREATED_BY"] = _dbUserName; header["ROW_CHANGED_BY"] = _dbUserName; header.Add("API", ""); StringReader sr = new StringReader(wellInfo); List <LASLine> headerMnems = new List <LASLine>(); while ((input = sr.ReadLine()) != null) { LASLine line = DecodeLASLine(input); if (!string.IsNullOrEmpty(line.Mnem)) { headerMnems.Add(line); } } foreach (var line in headerMnems) { WellMapping mapping = lasMappings.WellMappings.FirstOrDefault(s => s.LASMnem == line.Mnem); if (mapping != null) { string value = mapping.DBMnem; header[value] = line.Data; if (value == "NULL") { _nullRepresentation = line.Data; } } } foreach (var alternativeKey in lasMappings.AlernativeKeys) { if (!string.IsNullOrEmpty(header["UWI"])) { break; } string[] keys = alternativeKey.Key.Split(','); string seperator = ""; foreach (var key in keys) { LASLine line = headerMnems.FirstOrDefault(s => s.Mnem == key.Trim()); if (line != null) { if (!string.IsNullOrEmpty(line.Data)) { header["UWI"] = seperator + line.Data; seperator = "-"; } } } } foreach (string item in attributes) { string attribute = item.Trim(); string attributeType = attributeProperties[attribute]; if (attributeType.Contains("nvarchar")) { int?length = Regex.Match(attributeType, @"\d+").Value.GetIntFromString(); if (length != null) { header[attribute] = header[attribute].Truncate(length.GetValueOrDefault()); } } } string json = JsonConvert.SerializeObject(header, Formatting.Indented); _uwi = header["UWI"]; return(json); }