private ColumnModel CreateColumnDefinition() { var colName = UtilConsole.ReadString("Column name"); var dataType = UtilConsole.SelectFromEnum("Data type", DataType.None); if (dataType == DataType.None) { return(null); } var sourceDic = new Dictionary <DataType, List <ColumnDefinitionType> > { { DataType.Integer, new List <ColumnDefinitionType> { ColumnDefinitionType.IntegerRange, ColumnDefinitionType.DatabaseQuery } }, { DataType.Double, new List <ColumnDefinitionType> { ColumnDefinitionType.DoubleRange, ColumnDefinitionType.DatabaseQuery } }, { DataType.DateTime, new List <ColumnDefinitionType> { ColumnDefinitionType.DateRange, ColumnDefinitionType.DateTimeRange, ColumnDefinitionType.DatabaseQuery } }, { DataType.String, new List <ColumnDefinitionType> { ColumnDefinitionType.RandomPattern, ColumnDefinitionType.RandomChars, ColumnDefinitionType.Template, ColumnDefinitionType.DatabaseQuery } }, { DataType.Guid, new List <ColumnDefinitionType> { ColumnDefinitionType.Guid } } }; var sourceList = sourceDic[dataType]; var sourceListAsString = sourceList.Select(itm => itm.ToString()).ToList(); var sourceTypeAsString = UtilConsole.SelectFromList(sourceListAsString, "Select generator source"); var sourceType = UtilEnum.Get <ColumnDefinitionType>(sourceTypeAsString); var def = _columnModelFactory.GetInstance(sourceType); var loader = _consoleLoaderFactory.GetInstance(sourceType); def.Name = colName; loader.LoadFromConsole(def); return(def); }
public ColumnModel Load(string json) { var j = JObject.Parse(json); var columnDefinitionTypeName = j["columnDefinitionType"].ToString(); var columnDefinitionType = UtilEnum.Get <ColumnDefinitionType>(columnDefinitionTypeName); var column = _columnModelFactory.GetInstance(columnDefinitionType, j); return(column); }