private string GenerateFieldsInitialization(ScenesCodeCooker scenesCodeCooker) { var result = ""; if (!BaseClassName.IsNullOrWhiteSpace()) { result += $"{BaseClassName} = new Common.{BaseClassName}(Node);\n"; } foreach (var node in ParsedNodes) { result += string.Format( "@{2} = new {0}(Node.Find<Node>(\"{1}\"));", scenesCodeCooker.GetFullTypeOf(node), node.Id, node.FieldName ); result += "\n"; } foreach (var pft in InnerClasses) { result += string.Format( "@{2} = new {0}(Node.Find<Node>(\"{1}\"));", scenesCodeCooker.GetFullTypeOf(pft), pft.ParsedNode.Id, pft.FieldName ); result += "\n"; } return(result); }
private string GenerateFields(ScenesCodeCooker scenesCodeCooker) { var result = ""; var multiFields = new List <ParsedNode>(); var multiClasses = new List <ParsedFramesTree>(); foreach (var node in ParsedNodes) { bool haveSameFields = ParsedNodes.Count(f => f.FieldName == node.FieldName) > 1; if (haveSameFields) { if (multiFields.Exists(n => n.FieldName == node.FieldName)) { continue; } multiFields.Add(node); result += $"public readonly List<{scenesCodeCooker.GetFullTypeOf(node)}> @{node.FieldName};" + "\n"; } else { result += $"public readonly {scenesCodeCooker.GetFullTypeOf(node)} @{node.FieldName};" + "\n"; } } foreach (var pft in InnerClasses) { bool haveSameClasses = InnerClasses.Count(f => f.FieldName == pft.FieldName) > 1; if (haveSameClasses) { if (multiClasses.Exists(n => n.FieldName == pft.FieldName)) { continue; } multiClasses.Add(pft); result += $"public readonly List<{scenesCodeCooker.GetFullTypeOf(pft)}> @{pft.FieldName};" + "\n"; } else { result += $"public readonly {scenesCodeCooker.GetFullTypeOf(pft)} @{pft.FieldName};" + "\n"; } } return(result); }
private string GenerateFields(ScenesCodeCooker scenesCodeCooker) { var result = ""; foreach (var node in ParsedNodes) { result += string.Format("public readonly {0} @{1};", scenesCodeCooker.GetFullTypeOf(node), node.FieldName); result += "\n"; } foreach (var pft in InnerClasses) { result += string.Format("public readonly {0} @{1};", scenesCodeCooker.GetFullTypeOf(pft), pft.FieldName); result += "\n"; } return(result); }
private string GenerateFieldsInitialization(ScenesCodeCooker scenesCodeCooker) { var result = ""; if (!BaseClassName.IsNullOrWhiteSpace()) { result += $"{BaseClassName} = new Common.{BaseClassName}(Node);\n"; } var multiNodes = new List <ParsedNode>(); var multiClasses = new List <ParsedFramesTree>(); foreach (var node in ParsedNodes) { bool haveSameFields = ParsedNodes.Count(f => f.FieldName == node.FieldName) > 1; if (haveSameFields) { if (multiNodes.Exists(n => n.FieldName == node.FieldName)) { continue; } multiNodes.Add(node); result += string.Format( "@{2} = Node.Descendants.Where(nodeEl => nodeEl.Id == \"{1}\")" + ".Select(nodeEl => new {0} (nodeEl)).ToList();" + "\n", scenesCodeCooker.GetFullTypeOf(node), node.Id, node.FieldName ); } else { result += string.Format( "@{2} = new {0}(Node.Find<Node>(\"{1}\"));" + "\n", scenesCodeCooker.GetFullTypeOf(node), node.Id, node.FieldName ); } } foreach (var pft in InnerClasses) { bool haveSameFields = InnerClasses.Count(f => f.FieldName == pft.FieldName) > 1; if (haveSameFields) { if (multiClasses.Exists(n => n.FieldName == pft.FieldName)) { continue; } multiClasses.Add(pft); result += string.Format( "@{2} = Node.Descendants.Where(nodeEl => nodeEl.Id == \"{1}\")" + ".Select(nodeEl => new {0} (nodeEl)).ToList();" + "\n", scenesCodeCooker.GetFullTypeOf(pft), pft.ParsedNode.Id, pft.FieldName ); } else { result += string.Format( "@{2} = new {0}(Node.Find<Node>(\"{1}\"));" + "\n", scenesCodeCooker.GetFullTypeOf(pft), pft.ParsedNode.Id, pft.FieldName ); } } return(result); }