static string WritePart(TemplateModel view, QuickMatch match, string generatedIn) { string generatedOut = generatedIn; // QuickMatch match0 = list[0]; // Logger.LogY("TemplateFactory.WritePart","{0}", match.Value);// this is "TemplateName,TableName" if (!match.HasParams) { Logger.Warn("TemplateFactory.WritePart", "ERROR: No Params"); return(generatedIn); } if (!match.HasMultipleParams) { view.SetTemplate(match.Params[0]); if (view.TT == null) { Logger.Warn("TemplateFactory.WritePart ERROR", "Tag: ‘{0}’ value.", match.Name); return(generatedIn); } generatedOut = generatedIn.Replace(match.FullString, Gen_Pass2(view)); // replace the template tag with the parsed content. } // the Directory Element is not parsed. else if (match.Name == "Directory") { if (System.IO.Directory.Exists(match.Value)) { var listf = new List <string>(); foreach (string dir in System.IO.Directory.GetDirectories(match.Value)) { listf.Add(dir); } generatedOut = generatedIn.Replace(match.FullString, string.Join(",", listf.ToArray())); } } // ¡MAIN PARSER LOOP! else { string newOut = string.Empty; for (int i = 1; i < match.Params.Length; i++) // match.Params[i] = table-name; notice I starts at one { view.SetTemplate(match.Params[0]); view.SetView(match.Params[i]); newOut += Gen_Pass2(view); } generatedOut = generatedIn.Replace(match.FullString, newOut); } return(generatedOut); }
static List <string> GetParamStrings(TemplateModel view, bool noPrimaryKey) { var result_pList = new List <string>(); string curr_FieldName = null; // this is the primary date conversion or replacement portion of this method. // ------------------------------------------------------------ if (view.T.View == null && view.T.Link == null) { view.PrepareReformat(); for (int i = 0, elmTableFieldsCount = view.T.Fields.Count; i < elmTableFieldsCount; i++) { curr_FieldName = GetParam(view, noPrimaryKey, i); if (!string.IsNullOrEmpty(curr_FieldName)) { result_pList.Add(curr_FieldName); } } view.TemplateContentReformat = null; } // ------------------------------------------------------------ // we're dealing with a DataViewElement -- not sure if this is working so focus more up there... // ------------------------------------------------------------ else if (view.T.View != null) // here, we iterate on either of the following: // 1. FieldElement, tbl.Fields // 2. DataViewLink, tableElement.View.LinkItems // 2.1 FieldElement, tbl.Fields { view.SetView(); view.PrepareReplaceValues(); if (CheckForError(view.T)) { Logger.Warn("TemplateFactory.GetParamStrings", "couldn't find table named \"{0}\"", view.T.Name); } // this semantic really kind of sucks. for (int i = 0, tblFieldsCount = view.T.Fields.Count; i < tblFieldsCount; i++) { FieldElement field = view.T.Fields[i]; field.View = view.T.View; curr_FieldName = GetParam(view, noPrimaryKey, i); if (view.T.View.HasField(view.T, field, true) && !string.IsNullOrEmpty(curr_FieldName)) { result_pList.Add(curr_FieldName); } field.View = null; } foreach (DataViewLink link in view.T.View.LinkItems) { view.SetView(link); view.PrepareReplaceValues(); if (CheckForError(view.T)) { Logger.Warn("GetParamStrings", "Table \"{0}\" wasn't found"); } // how about exiting? Logger.LogG("--->", "Found table: {0}", view.T.Name); for (int i = 0, tblFieldsCount = view.T.Fields.Count; i < tblFieldsCount; i++) { FieldElement field = view.T.Fields[i]; field.View = view.T.View; field.Link = link; curr_FieldName = GetParam(view, noPrimaryKey, i); bool hasField = link.HasField(view.T, field, true); if (hasField && !string.IsNullOrEmpty(curr_FieldName)) { result_pList.Add(curr_FieldName); } field.View = null; field.Link = null; } } view.TemplateContentReformat = null; } return(result_pList); }