/// <summary> /// Creates the column to be created in the createscript /// </summary> /// <param name="name">The identifier of the column</param> /// <param name="type">The datatype of the column</param> /// <param name="isnull">The NULL or NOT NULL value of the column</param> public Column(string name, DataTypeColumn type, string typeDetails, bool isnull) { this.Name = name; this.Type = type; this.TypeDetails = typeDetails; this.isNull = isnull; }
private DataGridColumn TextColumn(ColumnModel column) { if (column.Values != null && column.Values.Count > 0) { var gridColumn = new DataTypeColumn(column, SortDirection, SortColumn); gridColumn.ColumnTypeChanged += ColumnTypeChanged; return(gridColumn); } return(new TextColumn(column, SortDirection, SortColumn)); }
public void AddNew <T>(T entity) { Type table = typeof(T); string entityName = string.Empty; switch (table.Name) { case "TriggerEvent": TriggerEvent tr = entity as TriggerEvent; entityName = string.Format("{0}_{1}:{2}", tr.MessageType, tr.EventType, tr.Segment); this._dbCTX.TriggerEvents.Add(entity as TriggerEvent); break; case "Segment": Segment s = entity as Segment; entityName = string.Format("{0}:{1}", s.SegmentId, s.Name); this._dbCTX.Segments.Add(entity as Segment); break; case "DataType": DataType dt = entity as DataType; entityName = string.Format("{0}:{1}", dt.Name, dt.Version); this._dbCTX.DataTypes.Add(dt as DataType); break; case "DataTypeColumn": DataTypeColumn dtc = entity as DataTypeColumn; entityName = string.Format("{0}:{1}_{2}", dtc.DataType1.Version, dtc.DataType1.Name, dtc.Name); this._dbCTX.DataTypeColumns.Add(dtc); break; } try { this._dbCTX.SaveChanges(); } catch (Exception ex) { string message = string.Format("Error saving entity {0}. ERROR: {1}. INNER EXCEPTION: {2}", entityName, ex.Message, ex.InnerException); LogErrorMessage(message); } }
private void ProcessDataTypeColumn(HL7SchemaRepository repo, string hl7Version, DataType dt) { HtmlNode scrapedData = null; _fileLogger.LogMessage(LogMessageType.INFO, string.Format("Scraping table information for data type {0} version {1}.", dt.Name, hl7Version)); try { string url = string.Format("http://hl7-definition.caristix.com:9010/Default.aspx?version=HL7%20v{0}&dataType={1}", hl7Version, dt.Name); var Webget = new HtmlWeb(); HtmlDocument doc = Webget.Load(url); scrapedData = doc.DocumentNode.SelectSingleNode("//table[@id='grdResult']"); } catch (Exception ex) { _fileLogger.LogMessage(LogMessageType.INFO, string.Format("Failed to scrape DataTypeColumn for version {0} column {1}. ERROR: {2}", hl7Version, dt.Name, ex.Message)); } if (scrapedData != null) { foreach (HtmlNode node in scrapedData.ChildNodes) { if (node.Name == "tr") { bool isValid = true; const string tdPattern = @"<td\b[^>]*?>(?<V>[\s\S]*?)</\s*td>"; StringBuilder strNode = new StringBuilder(); foreach (Match match in Regex.Matches(node.InnerHtml, tdPattern, RegexOptions.IgnoreCase)) { string value = match.Groups["V"].Value; strNode.Append(value + "|"); } if (strNode.Length > 0) { strNode.Remove(strNode.Length - 1, 1); DataTypeColumn newDataTypeColumn = new DataTypeColumn(); try { string[] splitData = strNode.ToString().Split('|'); newDataTypeColumn.Sequence = splitData[0].Split('.')[1].Parse <long>(); newDataTypeColumn.Length = splitData[1].Parse <long>(); newDataTypeColumn.IsOptional = bool.Parse(splitData[3] == "O" ? "true" : "false"); newDataTypeColumn.Name = splitData[5]; newDataTypeColumn.DataType1 = dt; const string aPattern = @"<a\b[^>]*?>(?<V>[\s\S]*?)</\s*a>"; foreach (Match match in Regex.Matches(splitData[2], aPattern, RegexOptions.IgnoreCase)) { string value = match.Groups["V"].Value; newDataTypeColumn.DataType = DataTypeMap(value); } } catch (Exception ex) { _fileLogger.LogMessage(LogMessageType.ERROR, ex.Message); isValid = false; } if (isValid) { repo.AddNew <DataTypeColumn>(newDataTypeColumn); } } } } } }