private void ExportData() { if (_ix4ServiceConnector != null && _ensureData != null && _dataCompositor != null) { // if (UpdateTimeWatcher.TimeToCheck("GP")) { try { foreach (string mark in new string[] { "SA" })// { "GP", "GS" }) { //if (!UpdateTimeWatcher.TimeToCheck(mark)) //{ // continue; //} //else //{ //} _loger.Log("Starting export data " + mark); XmlNode nodeResult = _ix4ServiceConnector.ExportData(mark, null); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.InnerXml = nodeResult.OuterXml; var msgNodes = xmlDoc.GetElementsByTagName("MSG"); // var msgNodes = nodeResult.LastChild.LastChild.SelectNodes("MSG"); _loger.Log(string.Format("Got Exported {0} items count = {1}", mark, msgNodes.Count)); if (msgNodes != null && msgNodes.Count > 0) { EnsureType ensureType = EnsureType.CollectData; switch (mark) { case "SA": ensureType = EnsureType.UpdateStoredData; break; case "GP": ensureType = EnsureType.CollectData; break; case "GS": ensureType = EnsureType.CollectData; break; default: ensureType = EnsureType.CollectData; break; } if (!_ensureData.StoreExportedNodeList(msgNodes, mark, ensureType)) { _ensureData.RudeStoreExportedData(nodeResult, mark); } else { _ensureData.ProcessingStoredDataToClientStorage(mark, _dataCompositor.GetCustomerDataConnector(CustomDataSourceTypes.MsSql)); } _loger.Log("End export data " + mark); System.Threading.Thread.Sleep(30000); } } } catch (Exception ex) { _loger.Log("Exception while export data"); _loger.Log(ex); } // UpdateTimeWatcher.SetLastUpdateTimeProperty(mark); } } }
public bool StoreExportedNodeList(XmlNodeList nodeResult, string exportedDataType, EnsureType ensureType) { bool storeResult = false; string fileName = string.Format("{0}\\{1}_{2}.xml", _archiveFolder, _customerName, exportedDataType); try { if (ensureType == EnsureType.UpdateStoredData && File.Exists(fileName)) { File.Delete(fileName); } XmlDocument xmlDoc = new XmlDocument(); if (!File.Exists(fileName)) { XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); XmlElement root = xmlDoc.DocumentElement; xmlDoc.InsertBefore(xmlDeclaration, root); xmlDoc.AppendChild(xmlDoc.CreateElement("CONTENT")); } else { xmlDoc.Load(fileName); } foreach (XmlNode node in nodeResult) { XmlNode insertedNode = xmlDoc.ImportNode(node, true); xmlDoc.DocumentElement.AppendChild(insertedNode); } xmlDoc.Save(fileName); if (!_dataFileNames.ContainsKey(exportedDataType)) { _dataFileNames.Add(exportedDataType, fileName); } storeResult = true; } catch (Exception ex) { _loger.Log(string.Format("Can't correctly create and save {0} file", fileName)); _loger.Log(ex); } finally { } return(storeResult); }