//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);
            }
        }
Example #2
0
 public SolidityStruct AddToBody(SolidityStatement statement)
 {
     body.Add(statement);
     return(this);
 }