Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }