private DataGridTypeItem CreateDataGridTypeItem(PropertyTypeItem propType, string className) { if (propType.DataType.PreValueItems.Count > 1) { var dataGridTypeItem = new DataGridTypeItem(); dataGridTypeItem.Id = propType.Id; dataGridTypeItem.TypeId = propType.TypeId; dataGridTypeItem.ClassName = className; dataGridTypeItem.IdentifierName = Naming.PascalCase(Naming.IdentifierName(propType.DataType.DataTypeName)); foreach (var preValue in propType.DataType.PreValueItems.Skip(1)) { var column = new DataGridTypeItem.Column(); var json = new JavaScriptSerializer(); var dictionary = json.Deserialize <Dictionary <string, object> >(preValue.Value); if (dictionary.ContainsKey("Alias")) { column.Alias = dictionary["Alias"] as string; column.IdentifierName = Naming.PropertyName(column.Alias, className); } if (dictionary.ContainsKey("DataTypeId")) { int typeId = DataTypeHelper.GetValueTypeId(column.Alias); if (typeId == 0) { column.DataType = TypeLib.DataTypes.FirstOrDefault(dt => dt.Id == (int)dictionary["DataTypeId"]); } else { column.DataType = TypeLib.DataTypes.FirstOrDefault(dt => dt.Id == typeId); column.DataType.Type = column.DataType.ModelType; } } dataGridTypeItem.Columns.Add(column); } return(dataGridTypeItem); } return(null); }
public string PascalCase(string identifier) { return(Naming.PascalCase(identifier)); }
public string ClassName(string alias) { return(Naming.PascalCase(Naming.IdentifierName(alias))); }