void ReplaceText(Paragraph paragraph) { var parent = paragraph.Parent; //get parent element - to be used when removing placeholder var dataParam = new WordParameter(); if (ContainsParam(paragraph, ref dataParam)) //check if paragraph is on our parameter list { //insert text list if (dataParam.Name.Contains("string[]")) //check if param is a list { var arrayText = dataParam.Text.Split(Environment.NewLine.ToCharArray()); //in our case we split it into lines if (arrayText is IEnumerable) //enumerate if we can { foreach (var itemData in arrayText) { Paragraph bullet = CloneParaGraphWithStyles(paragraph, dataParam.Name, itemData); // create new param - preserve styles parent.InsertBefore(bullet, paragraph); //insert new element } } paragraph.Remove();//delete placeholder } else { //insert text line var param = CloneParaGraphWithStyles(paragraph, dataParam.Name, dataParam.Text); // create new param - preserve styles parent.InsertBefore(param, paragraph); //insert new element paragraph.Remove(); //delete placeholder } } }
public bool ContainsParam(Paragraph paragraph, ref WordParameter dataParam) { foreach (var param in this.WordParameters) { if (!string.IsNullOrEmpty(param.Name) && paragraph.InnerText.ToLower().Contains(param.Name.ToLower())) { dataParam = param; return(true); } } return(false); }
public Node <INode> GetNode(string nodeName, IConstellationFileParser constellationFileParser) { switch (nodeName) { case ValueParameter.NAME: INode nodeValueAttribute = new ValueParameter() as INode; return(new Node <INode> (nodeValueAttribute)); case WordParameter.NAME: INode nodeWordAttribute = new WordParameter() as INode; return(new Node <INode> (nodeWordAttribute)); default: return(null); } }