diff --git a/ETS-WS/ETS-WS/DocTemplates/ETS-Proto.docx b/ETS-WS/ETS-WS/DocTemplates/ETS-Proto.docx
index 0345cbb..2c4b6d9 100644
Binary files a/ETS-WS/ETS-WS/DocTemplates/ETS-Proto.docx and b/ETS-WS/ETS-WS/DocTemplates/ETS-Proto.docx differ
diff --git a/ETS-WS/ETS-WS/WebShipUtils.cs b/ETS-WS/ETS-WS/WebShipUtils.cs
index d270d2b..8e1f84b 100644
--- a/ETS-WS/ETS-WS/WebShipUtils.cs
+++ b/ETS-WS/ETS-WS/WebShipUtils.cs
@@ -534,7 +534,7 @@ namespace ETS_WS
// ricalcolo nome file
string newFileName = WebShipUtils.nomeFileFullFromIdxFile(idxFile);
// sposto file
- fileMover.obj.muoviFile("~/DocTemplates/", path, nomeFile, newFileName, true);
+ fileMover.obj.muoviFile("~/DocTemplates/", path, nomeFile, newFileName, false);
lg.Info("Spostato file {0} per sostituzione causa svuotamento", nomeFile);
}
}
@@ -752,9 +752,9 @@ namespace ETS_WS
officeXmlMan.replaceDocxText(fullPath, "DataDoc", docsData.dataDoc.ToShortDateString());
officeXmlMan.replaceDocxText(fullPath, "NumCommessa", NumCommessa);
officeXmlMan.replaceDocxText(fullPath, "OggettoDoc", OggettoDoc);
- officeXmlMan.replaceDocxText(fullPath, "FonteDoc", FonteDoc);
officeXmlMan.replaceDocxText(fullPath, "RedattoreDoc", utils.obj.currUserCognomeNome);
officeXmlMan.replaceDocxText(fullPath, "FaxNum", FaxNum);
+ officeXmlMan.replaceDocxText(fullPath, "FonteDoc", FonteDoc);
}
else if (nomeTemplate.IndexOf("eml") >= 0)
{
diff --git a/ETS-WS/ETS-WS/WebUserControls/mod_archivioDocumenti.ascx.cs b/ETS-WS/ETS-WS/WebUserControls/mod_archivioDocumenti.ascx.cs
index af68dfa..f049359 100644
--- a/ETS-WS/ETS-WS/WebUserControls/mod_archivioDocumenti.ascx.cs
+++ b/ETS-WS/ETS-WS/WebUserControls/mod_archivioDocumenti.ascx.cs
@@ -200,29 +200,6 @@ namespace ETS_WS.WebUserControls
{
lg.Info("Errore recupero stato red old/new", exc);
}
-#if false
- // sposto file in area temp utente...
- if (isRed != isRed_Original)
- {
- // dati del file originale..
- docMetaDataSet docsData = WebShipUtils.mng.docMetaFromIdxFile(WebShipUtils.mng.idxFileEdit);
- // calcolo nuovo path
- string fromPath = "";
- string destPath = "";
- if (isRed)
- {
- fromPath = string.Format("{0}{1}", utils.obj.confReadString("archiveDir"), docsData.path);
- destPath = string.Format("{0}{1}", utils.obj.confReadString("archiveDirRed"), docsData.path);
- }
- else
- {
- fromPath = string.Format("{0}{1}", utils.obj.confReadString("archiveDirRed"), docsData.path);
- destPath = string.Format("{0}{1}", utils.obj.confReadString("archiveDir"), docsData.path);
- }
- // sposto file a nuova dest...
- fileMover.obj.muoviFile(fromPath, destPath, WebShipUtils.nomeFileFullFromIdxFile(WebShipUtils.mng.idxFileEdit), WebShipUtils.nomeFileFromIdxFile(WebShipUtils.mng.idxFileEdit), true);
- }
-#endif
// sposto file a nuova dest...
fileMover.obj.muoviFile(WebShipUtils.pathFromIdxFile(WebShipUtils.mng.idxFileEdit), WebShipUtils.mng.UserTempPath, WebShipUtils.nomeFileFullFromIdxFile(WebShipUtils.mng.idxFileEdit), WebShipUtils.nomeFileFromIdxFile(WebShipUtils.mng.idxFileEdit), true);
}
diff --git a/ETS-WS/ETS-WS/bin/ETS-WS.dll b/ETS-WS/ETS-WS/bin/ETS-WS.dll
index 7b71d72..7f75ac2 100644
Binary files a/ETS-WS/ETS-WS/bin/ETS-WS.dll and b/ETS-WS/ETS-WS/bin/ETS-WS.dll differ
diff --git a/ETS-WS/ETS-WS/bin/ETS_Data.dll b/ETS-WS/ETS-WS/bin/ETS_Data.dll
index 4a1f38a..0516437 100644
Binary files a/ETS-WS/ETS-WS/bin/ETS_Data.dll and b/ETS-WS/ETS-WS/bin/ETS_Data.dll differ
diff --git a/ETS-WS/ETS-WS/obj/ETS/CSAutoParameterize/original/Web.config b/ETS-WS/ETS-WS/obj/ETS/CSAutoParameterize/original/Web.config
index a0545c3..5252990 100644
--- a/ETS-WS/ETS-WS/obj/ETS/CSAutoParameterize/original/Web.config
+++ b/ETS-WS/ETS-WS/obj/ETS/CSAutoParameterize/original/Web.config
@@ -30,7 +30,7 @@
-
+
diff --git a/ETS-WS/ETS-WS/obj/ETS/CSAutoParameterize/transformed/Web.config b/ETS-WS/ETS-WS/obj/ETS/CSAutoParameterize/transformed/Web.config
index fc7398f..1119355 100644
--- a/ETS-WS/ETS-WS/obj/ETS/CSAutoParameterize/transformed/Web.config
+++ b/ETS-WS/ETS-WS/obj/ETS/CSAutoParameterize/transformed/Web.config
@@ -30,7 +30,7 @@
-
+
diff --git a/ETS-WS/ETS-WS/obj/ETS/ETS-WS.csprojResolveAssemblyReference.cache b/ETS-WS/ETS-WS/obj/ETS/ETS-WS.csprojResolveAssemblyReference.cache
index 312d7e3..879afab 100644
Binary files a/ETS-WS/ETS-WS/obj/ETS/ETS-WS.csprojResolveAssemblyReference.cache and b/ETS-WS/ETS-WS/obj/ETS/ETS-WS.csprojResolveAssemblyReference.cache differ
diff --git a/ETS-WS/ETS-WS/obj/ETS/ETS-WS.dll b/ETS-WS/ETS-WS/obj/ETS/ETS-WS.dll
index 7b71d72..7f75ac2 100644
Binary files a/ETS-WS/ETS-WS/obj/ETS/ETS-WS.dll and b/ETS-WS/ETS-WS/obj/ETS/ETS-WS.dll differ
diff --git a/ETS-WS/ETS-WS/obj/ETS/Package/ETS-WS.zip b/ETS-WS/ETS-WS/obj/ETS/Package/ETS-WS.zip
index cf14a3b..063dcd6 100644
Binary files a/ETS-WS/ETS-WS/obj/ETS/Package/ETS-WS.zip and b/ETS-WS/ETS-WS/obj/ETS/Package/ETS-WS.zip differ
diff --git a/ETS-WS/ETS-WS/obj/ETS/TransformWebConfig/original/Web.config b/ETS-WS/ETS-WS/obj/ETS/TransformWebConfig/original/Web.config
index 18eefb4..7209f76 100644
--- a/ETS-WS/ETS-WS/obj/ETS/TransformWebConfig/original/Web.config
+++ b/ETS-WS/ETS-WS/obj/ETS/TransformWebConfig/original/Web.config
@@ -30,7 +30,7 @@
-
+
diff --git a/ETS-WS/ETS-WS/obj/ETS/TransformWebConfig/transformed/Web.config b/ETS-WS/ETS-WS/obj/ETS/TransformWebConfig/transformed/Web.config
index a0545c3..5252990 100644
--- a/ETS-WS/ETS-WS/obj/ETS/TransformWebConfig/transformed/Web.config
+++ b/ETS-WS/ETS-WS/obj/ETS/TransformWebConfig/transformed/Web.config
@@ -30,7 +30,7 @@
-
+
diff --git a/ETS_Data/ETS_Data.csproj b/ETS_Data/ETS_Data.csproj
index 2c8cb6f..20c8228 100644
--- a/ETS_Data/ETS_Data.csproj
+++ b/ETS_Data/ETS_Data.csproj
@@ -104,6 +104,7 @@
True
Settings.settings
+
diff --git a/ETS_Data/SearchAndReplace.cs b/ETS_Data/SearchAndReplace.cs
new file mode 100644
index 0000000..2a97540
--- /dev/null
+++ b/ETS_Data/SearchAndReplace.cs
@@ -0,0 +1,415 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Xml;
+using System.Xml.Linq;
+using DocumentFormat.OpenXml.Packaging;
+
+namespace ETS_Data
+{
+ public class SearchAndReplacer
+ {
+ public static XmlDocument GetXmlDocument(OpenXmlPart part)
+ {
+ XmlDocument xmlDoc = new XmlDocument();
+ using (Stream partStream = part.GetStream())
+ using (XmlReader partXmlReader = XmlReader.Create(partStream))
+ xmlDoc.Load(partXmlReader);
+ return xmlDoc;
+ }
+
+ public static void PutXmlDocument(OpenXmlPart part, XmlDocument xmlDoc)
+ {
+ using (Stream partStream = part.GetStream(FileMode.Create, FileAccess.Write))
+ using (XmlWriter partXmlWriter = XmlWriter.Create(partStream))
+ xmlDoc.Save(partXmlWriter);
+ }
+
+ static void SearchAndReplaceInParagraph(XmlElement paragraph, string search,
+ string replace, bool matchCase)
+ {
+ XmlDocument xmlDoc = paragraph.OwnerDocument;
+ string wordNamespace =
+ "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
+ XmlNamespaceManager nsmgr =
+ new XmlNamespaceManager(xmlDoc.NameTable);
+ nsmgr.AddNamespace("w", wordNamespace);
+ XmlNodeList paragraphText = paragraph.SelectNodes("descendant::w:t", nsmgr);
+ StringBuilder sb = new StringBuilder();
+ foreach (XmlNode text in paragraphText)
+ sb.Append(((XmlElement)text).InnerText);
+ if (sb.ToString().Contains(search) ||
+ (!matchCase && sb.ToString().ToUpper().Contains(search.ToUpper())))
+ {
+ XmlNodeList runs = paragraph.SelectNodes("child::w:r", nsmgr);
+ foreach (XmlElement run in runs)
+ {
+ XmlNodeList childElements = run.SelectNodes("child::*", nsmgr);
+ if (childElements.Count > 0)
+ {
+ XmlElement last = (XmlElement)childElements[childElements.Count - 1];
+ for (int c = childElements.Count - 1; c >= 0; --c)
+ {
+ if (childElements[c].Name == "w:rPr")
+ continue;
+ if (childElements[c].Name == "w:t")
+ {
+ string textElementString = childElements[c].InnerText;
+ for (int i = textElementString.Length - 1; i >= 0; --i)
+ {
+ XmlElement newRun =
+ xmlDoc.CreateElement("w:r", wordNamespace);
+ XmlElement runProps =
+ (XmlElement)run.SelectSingleNode("child::w:rPr", nsmgr);
+ if (runProps != null)
+ {
+ XmlElement newRunProps =
+ (XmlElement)runProps.CloneNode(true);
+ newRun.AppendChild(newRunProps);
+ }
+ XmlElement newTextElement =
+ xmlDoc.CreateElement("w:t", wordNamespace);
+ XmlText newText =
+ xmlDoc.CreateTextNode(textElementString[i].ToString());
+ newTextElement.AppendChild(newText);
+ if (textElementString[i] == ' ')
+ {
+ XmlAttribute xmlSpace = xmlDoc.CreateAttribute(
+ "xml", "space",
+ "http://www.w3.org/XML/1998/namespace");
+ xmlSpace.Value = "preserve";
+ newTextElement.Attributes.Append(xmlSpace);
+ }
+ newRun.AppendChild(newTextElement);
+ paragraph.InsertAfter(newRun, run);
+ }
+ }
+ else
+ {
+ XmlElement newRun = xmlDoc.CreateElement("w:r", wordNamespace);
+ XmlElement runProps =
+ (XmlElement)run.SelectSingleNode("child::w:rPr", nsmgr);
+ if (runProps != null)
+ {
+ XmlElement newRunProps =
+ (XmlElement)runProps.CloneNode(true);
+ newRun.AppendChild(newRunProps);
+ }
+ XmlElement newChildElement =
+ (XmlElement)childElements[c].CloneNode(true);
+ newRun.AppendChild(newChildElement);
+ paragraph.InsertAfter(newRun, run);
+ }
+ }
+ paragraph.RemoveChild(run);
+ }
+ }
+
+ while (true)
+ {
+ bool cont = false;
+ runs = paragraph.SelectNodes("child::w:r", nsmgr);
+ for (int i = 0; i <= runs.Count - search.Length; ++i)
+ {
+ bool match = true;
+ for (int c = 0; c < search.Length; ++c)
+ {
+ XmlElement textElement =
+ (XmlElement)runs[i + c].SelectSingleNode("child::w:t", nsmgr);
+ if (textElement == null)
+ {
+ match = false;
+ break;
+ }
+ if (textElement.InnerText == search[c].ToString())
+ continue;
+ if (!matchCase &&
+ textElement.InnerText.ToUpper() == search[c].ToString().ToUpper())
+ continue;
+ match = false;
+ break;
+ }
+ if (match)
+ {
+ XmlElement runProps =
+ (XmlElement)runs[i].SelectSingleNode("descendant::w:rPr", nsmgr);
+ XmlElement newRun = xmlDoc.CreateElement("w:r", wordNamespace);
+ if (runProps != null)
+ {
+ XmlElement newRunProps = (XmlElement)runProps.CloneNode(true);
+ newRun.AppendChild(newRunProps);
+ }
+ XmlElement newTextElement =
+ xmlDoc.CreateElement("w:t", wordNamespace);
+ XmlText newText = xmlDoc.CreateTextNode(replace);
+ newTextElement.AppendChild(newText);
+ if (replace[0] == ' ' || replace[replace.Length - 1] == ' ')
+ {
+ XmlAttribute xmlSpace = xmlDoc.CreateAttribute("xml", "space",
+ "http://www.w3.org/XML/1998/namespace");
+ xmlSpace.Value = "preserve";
+ newTextElement.Attributes.Append(xmlSpace);
+ }
+ newRun.AppendChild(newTextElement);
+ paragraph.InsertAfter(newRun, (XmlNode)runs[i]);
+ for (int c = 0; c < search.Length; ++c)
+ paragraph.RemoveChild(runs[i + c]);
+ cont = true;
+ break;
+ }
+ }
+ if (!cont)
+ break;
+ }
+
+ // Consolidate adjacent runs that have only text elements, and have the
+ // same run properties. This isn't necessary to create a valid document,
+ // however, having the split runs is a bit messy.
+ XmlNodeList children = paragraph.SelectNodes("child::*", nsmgr);
+ List matchId = new List();
+ int id = 0;
+ for (int c = 0; c < children.Count; ++c)
+ {
+ if (c == 0)
+ {
+ matchId.Add(id);
+ continue;
+ }
+ if (children[c].Name == "w:r" &&
+ children[c - 1].Name == "w:r" &&
+ children[c].SelectSingleNode("w:t", nsmgr) != null &&
+ children[c - 1].SelectSingleNode("w:t", nsmgr) != null)
+ {
+ XmlElement runProps =
+ (XmlElement)children[c].SelectSingleNode("w:rPr", nsmgr);
+ XmlElement lastRunProps =
+ (XmlElement)children[c - 1].SelectSingleNode("w:rPr", nsmgr);
+ if ((runProps == null && lastRunProps != null) ||
+ (runProps != null && lastRunProps == null))
+ {
+ matchId.Add(++id);
+ continue;
+ }
+ if (runProps != null && runProps.InnerXml != lastRunProps.InnerXml)
+ {
+ matchId.Add(++id);
+ continue;
+ }
+ matchId.Add(id);
+ continue;
+ }
+ matchId.Add(++id);
+ }
+
+ for (int i = 0; i <= id; ++i)
+ {
+ var x1 = matchId.IndexOf(i);
+ var x2 = matchId.LastIndexOf(i);
+ if (x1 == x2)
+ continue;
+ StringBuilder sb2 = new StringBuilder();
+ for (int z = x1; z <= x2; ++z)
+ sb2.Append(((XmlElement)children[z]
+ .SelectSingleNode("w:t", nsmgr)).InnerText);
+ XmlElement newRun = xmlDoc.CreateElement("w:r", wordNamespace);
+ XmlElement runProps =
+ (XmlElement)children[x1].SelectSingleNode("child::w:rPr", nsmgr);
+ if (runProps != null)
+ {
+ XmlElement newRunProps = (XmlElement)runProps.CloneNode(true);
+ newRun.AppendChild(newRunProps);
+ }
+ XmlElement newTextElement = xmlDoc.CreateElement("w:t", wordNamespace);
+ XmlText newText = xmlDoc.CreateTextNode(sb2.ToString());
+ newTextElement.AppendChild(newText);
+ if (sb2[0] == ' ' || sb2[sb2.Length - 1] == ' ')
+ {
+ XmlAttribute xmlSpace = xmlDoc.CreateAttribute(
+ "xml", "space", "http://www.w3.org/XML/1998/namespace");
+ xmlSpace.Value = "preserve";
+ newTextElement.Attributes.Append(xmlSpace);
+ }
+ newRun.AppendChild(newTextElement);
+ paragraph.InsertAfter(newRun, children[x2]);
+ for (int z = x1; z <= x2; ++z)
+ paragraph.RemoveChild(children[z]);
+ }
+
+ var txbxParagraphs = paragraph.SelectNodes("descendant::w:p", nsmgr);
+ foreach (XmlElement p in txbxParagraphs)
+ SearchAndReplaceInParagraph((XmlElement)p, search, replace, matchCase);
+ }
+ }
+
+ public static bool PartHasTrackedRevisions(OpenXmlPart part)
+ {
+ XmlDocument doc = GetXmlDocument(part);
+ string wordNamespace =
+ "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
+ XmlNamespaceManager nsmgr =
+ new XmlNamespaceManager(doc.NameTable);
+ nsmgr.AddNamespace("w", wordNamespace);
+ string xpathExpression =
+ "descendant::w:cellDel|" +
+ "descendant::w:cellIns|" +
+ "descendant::w:cellMerge|" +
+ "descendant::w:customXmlDelRangeEnd|" +
+ "descendant::w:customXmlDelRangeStart|" +
+ "descendant::w:customXmlInsRangeEnd|" +
+ "descendant::w:customXmlInsRangeStart|" +
+ "descendant::w:del|" +
+ "descendant::w:delInstrText|" +
+ "descendant::w:delText|" +
+ "descendant::w:ins|" +
+ "descendant::w:moveFrom|" +
+ "descendant::w:moveFromRangeEnd|" +
+ "descendant::w:moveFromRangeStart|" +
+ "descendant::w:moveTo|" +
+ "descendant::w:moveToRangeEnd|" +
+ "descendant::w:moveToRangeStart|" +
+ "descendant::w:moveTo|" +
+ "descendant::w:numberingChange|" +
+ "descendant::w:rPrChange|" +
+ "descendant::w:pPrChange|" +
+ "descendant::w:rPrChange|" +
+ "descendant::w:sectPrChange|" +
+ "descendant::w:tcPrChange|" +
+ "descendant::w:tblGridChange|" +
+ "descendant::w:tblPrChange|" +
+ "descendant::w:tblPrExChange|" +
+ "descendant::w:trPrChange";
+ XmlNodeList descendants = doc.SelectNodes(xpathExpression, nsmgr);
+ return descendants.Count > 0;
+ }
+
+ public static bool HasTrackedRevisions(WordprocessingDocument doc)
+ {
+ if (PartHasTrackedRevisions(doc.MainDocumentPart))
+ return true;
+ foreach (var part in doc.MainDocumentPart.HeaderParts)
+ if (PartHasTrackedRevisions(part))
+ return true;
+ foreach (var part in doc.MainDocumentPart.FooterParts)
+ if (PartHasTrackedRevisions(part))
+ return true;
+ if (doc.MainDocumentPart.EndnotesPart != null)
+ if (PartHasTrackedRevisions(doc.MainDocumentPart.EndnotesPart))
+ return true;
+ if (doc.MainDocumentPart.FootnotesPart != null)
+ if (PartHasTrackedRevisions(doc.MainDocumentPart.FootnotesPart))
+ return true;
+ return false;
+ }
+
+ private static void SearchAndReplaceInXmlDocument(XmlDocument xmlDocument, string search,
+ string replace, bool matchCase)
+ {
+ XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDocument.NameTable);
+ nsmgr.AddNamespace("w",
+ "http://schemas.openxmlformats.org/wordprocessingml/2006/main");
+ var paragraphs = xmlDocument.SelectNodes("descendant::w:p", nsmgr);
+ foreach (var paragraph in paragraphs)
+ SearchAndReplaceInParagraph((XmlElement)paragraph, search, replace, matchCase);
+ }
+
+ public static void SearchAndReplace(WordprocessingDocument wordDoc, string search,
+ string replace, bool matchCase)
+ {
+ if (HasTrackedRevisions(wordDoc))
+ throw new SearchAndReplaceException(
+ "Search and replace will not work with documents " +
+ "that contain revision tracking.");
+
+ XmlDocument xmlDoc;
+ xmlDoc = GetXmlDocument(wordDoc.MainDocumentPart.DocumentSettingsPart);
+ XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
+ nsmgr.AddNamespace("w",
+ "http://schemas.openxmlformats.org/wordprocessingml/2006/main");
+ XmlNodeList trackedRevisions =
+ xmlDoc.SelectNodes("descendant::w:trackRevisions", nsmgr);
+ if (trackedRevisions.Count > 0)
+ throw new SearchAndReplaceException(
+ "Revision tracking is turned on for document.");
+
+ xmlDoc = GetXmlDocument(wordDoc.MainDocumentPart);
+ SearchAndReplaceInXmlDocument(xmlDoc, search, replace, matchCase);
+ PutXmlDocument(wordDoc.MainDocumentPart, xmlDoc);
+ foreach (var part in wordDoc.MainDocumentPart.HeaderParts)
+ {
+ xmlDoc = GetXmlDocument(part);
+ SearchAndReplaceInXmlDocument(xmlDoc, search, replace, matchCase);
+ PutXmlDocument(part, xmlDoc);
+ }
+ foreach (var part in wordDoc.MainDocumentPart.FooterParts)
+ {
+ xmlDoc = GetXmlDocument(part);
+ SearchAndReplaceInXmlDocument(xmlDoc, search, replace, matchCase);
+ PutXmlDocument(part, xmlDoc);
+ }
+ if (wordDoc.MainDocumentPart.EndnotesPart != null)
+ {
+ xmlDoc = GetXmlDocument(wordDoc.MainDocumentPart.EndnotesPart);
+ SearchAndReplaceInXmlDocument(xmlDoc, search, replace, matchCase);
+ PutXmlDocument(wordDoc.MainDocumentPart.EndnotesPart, xmlDoc);
+ }
+ if (wordDoc.MainDocumentPart.FootnotesPart != null)
+ {
+ xmlDoc = GetXmlDocument(wordDoc.MainDocumentPart.FootnotesPart);
+ SearchAndReplaceInXmlDocument(xmlDoc, search, replace, matchCase);
+ PutXmlDocument(wordDoc.MainDocumentPart.FootnotesPart, xmlDoc);
+ }
+ }
+ }
+
+ public class SearchAndReplaceException : Exception
+ {
+ public SearchAndReplaceException(string message) : base(message) { }
+ }
+
+
+
+
+
+
+
+
+
+ public static class Extensions
+ {
+ public static string ToStringAlignAttributes(this XContainer xContainer)
+ {
+ XmlWriterSettings settings = new XmlWriterSettings();
+ settings.Indent = true;
+ settings.OmitXmlDeclaration = true;
+ settings.NewLineOnAttributes = true;
+ StringBuilder sb = new StringBuilder();
+ using (XmlWriter xmlWriter = XmlWriter.Create(sb, settings))
+ xContainer.WriteTo(xmlWriter);
+ return sb.ToString();
+ }
+
+ public static XDocument GetXDocument(this XmlDocument document)
+ {
+ XDocument xDoc = new XDocument();
+ using (XmlWriter xmlWriter = xDoc.CreateWriter())
+ document.WriteTo(xmlWriter);
+ XmlDeclaration decl =
+ document.ChildNodes.OfType().FirstOrDefault();
+ if (decl != null)
+ xDoc.Declaration = new XDeclaration(decl.Version, decl.Encoding,
+ decl.Standalone);
+ return xDoc;
+ }
+
+ public static XElement GetXElement(this XmlNode node)
+ {
+ XDocument xDoc = new XDocument();
+ using (XmlWriter xmlWriter = xDoc.CreateWriter())
+ node.WriteTo(xmlWriter);
+ return xDoc.Root;
+ }
+ }
+}
\ No newline at end of file
diff --git a/ETS_Data/bin/ETS/ETS_Data.dll b/ETS_Data/bin/ETS/ETS_Data.dll
index 4a1f38a..0516437 100644
Binary files a/ETS_Data/bin/ETS/ETS_Data.dll and b/ETS_Data/bin/ETS/ETS_Data.dll differ
diff --git a/ETS_Data/bin/Release/ETS_Data.dll b/ETS_Data/bin/Release/ETS_Data.dll
index 23d191c..d029b9b 100644
Binary files a/ETS_Data/bin/Release/ETS_Data.dll and b/ETS_Data/bin/Release/ETS_Data.dll differ
diff --git a/ETS_Data/obj/Debug/ETS_Data.csproj.FileListAbsolute.txt b/ETS_Data/obj/Debug/ETS_Data.csproj.FileListAbsolute.txt
index c1126b5..7c7f2b9 100644
--- a/ETS_Data/obj/Debug/ETS_Data.csproj.FileListAbsolute.txt
+++ b/ETS_Data/obj/Debug/ETS_Data.csproj.FileListAbsolute.txt
@@ -15,6 +15,5 @@ C:\Users\samuele.STEAMWAREWIN\Documents\Visual Studio 2010\Projects\ETS\ETS_Data
C:\Users\samuele.STEAMWAREWIN\Documents\Visual Studio 2010\Projects\ETS\ETS_Data\bin\Debug\DocumentFormat.OpenXml.dll
C:\Users\samuele.STEAMWAREWIN\Documents\Visual Studio 2010\Projects\ETS\ETS_Data\bin\Debug\NLog.dll
C:\Users\samuele.STEAMWAREWIN\Documents\Visual Studio 2010\Projects\ETS\ETS_Data\bin\Debug\NLog.xml
-C:\Users\samuele.STEAMWAREWIN\Documents\Visual Studio 2010\Projects\ETS\ETS_Data\obj\Debug\ETS_Data.csprojResolveAssemblyReference.cache
C:\Users\samuele.STEAMWAREWIN\Documents\Visual Studio 2010\Projects\ETS\ETS_Data\obj\Debug\ETS_Data.dll
C:\Users\samuele.STEAMWAREWIN\Documents\Visual Studio 2010\Projects\ETS\ETS_Data\obj\Debug\ETS_Data.pdb
diff --git a/ETS_Data/obj/Debug/ETS_Data.csprojResolveAssemblyReference.cache b/ETS_Data/obj/Debug/ETS_Data.csprojResolveAssemblyReference.cache
deleted file mode 100644
index 2a48177..0000000
Binary files a/ETS_Data/obj/Debug/ETS_Data.csprojResolveAssemblyReference.cache and /dev/null differ
diff --git a/ETS_Data/obj/Debug/ETS_Data.dll b/ETS_Data/obj/Debug/ETS_Data.dll
index 98a2e08..27b7aa4 100644
Binary files a/ETS_Data/obj/Debug/ETS_Data.dll and b/ETS_Data/obj/Debug/ETS_Data.dll differ
diff --git a/ETS_Data/obj/ETS/ETS_Data.dll b/ETS_Data/obj/ETS/ETS_Data.dll
index 4a1f38a..0516437 100644
Binary files a/ETS_Data/obj/ETS/ETS_Data.dll and b/ETS_Data/obj/ETS/ETS_Data.dll differ
diff --git a/ETS_Data/officeXmlMan.cs b/ETS_Data/officeXmlMan.cs
index 4ed77be..51a70ec 100644
--- a/ETS_Data/officeXmlMan.cs
+++ b/ETS_Data/officeXmlMan.cs
@@ -5,6 +5,7 @@ using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using DocumentFormat.OpenXml.Packaging;
+using DocumentFormat.OpenXml.Wordprocessing;
namespace ETS_Data
{
@@ -23,22 +24,24 @@ namespace ETS_Data
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(fullPathFile, true))
{
- // lettura
- string docText = null;
- using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
- {
- docText = sr.ReadToEnd();
- }
- // sostituzione
- Regex regexText = new Regex(textOrig);
- docText = regexText.Replace(docText, textNew);
- // scrittura
- using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
- {
- sw.Write(docText);
- }
+#if false
+ // lettura
+ string docText = null;
+ using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
+ {
+ docText = sr.ReadToEnd();
+ }
+ // sostituzione
+ Regex regexText = new Regex(textOrig);
+ docText = regexText.Replace(docText, textNew);
+ // scrittura
+ using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
+ {
+ sw.Write(docText);
+ }
+#endif
+ SearchAndReplacer.SearchAndReplace(wordDoc, textOrig, textNew, true);
}
}
-
}
}