//TODO: Working, but not very nice solution. Might need update void AddDataModel() { foreach (var e in entities) { SolidityStruct s = new SolidityStruct(e); SolidityStatement statement = new SolidityStatement(); List <Property> newProperties = new List <Property>(); newProperties.Clear(); foreach (var p in e.Properties) { string type = Helpers.GetSolidityStringType(p); if (!p.IsCollection) { statement.Add(type + " " + Helpers.GetPropertyVariableName(p.Name)); } else if (p.IsCollection) { statement.Add("mapping (uint => " + type + ") " + Helpers.GetPropertyVariableName(p.Name)); Property property = new Property(); string name = Helpers.GetPropertyVariableName(p.Name) + "Length"; property.Type = PropertyType.Int; property.Name = name; statement.Add("uint " + name); newProperties.Add(property); } } foreach (var np in newProperties) { s.En.Properties.Add(np); } s.AddToBody(statement); solidityContract.AddComponent(s); dataModel.Add(s); } }
public SolidityStruct AddToBody(SolidityStatement statement) { body.Add(statement); return(this); }