예제 #1
0
        private static void WriteLogEvent(XmlWriter writer, WritingSystemLogEvent logEvent)
        {
            writer.WriteStartElement(logEvent.Type);
            writer.WriteAttributeString("Producer", logEvent.Producer);
            writer.WriteAttributeString("ProducerVersion", logEvent.ProducerVersion);
            writer.WriteAttributeString("TimeStamp", logEvent.DateTime.ToISO8601TimeFormatWithUTCString());
            switch (logEvent.Type)
            {
            case "Change":
                var changeEvent = (WritingSystemLogChangeEvent)logEvent;
                writer.WriteElementString("From", changeEvent.From);
                writer.WriteElementString("To", changeEvent.To);
                break;

            case "Merge":
                var conflateEvent = (WritingSystemLogConflateEvent)logEvent;
                writer.WriteElementString("From", conflateEvent.From);
                writer.WriteElementString("To", conflateEvent.To);
                break;

            case "Delete":
                var deleteEvent = (WritingSystemLogDeleteEvent)logEvent;
                writer.WriteElementString("Id", deleteEvent.ID);
                break;

            case "Add":
                var addEvent = (WritingSystemLogAddEvent)logEvent;
                writer.WriteElementString("Id", addEvent.ID);
                break;
            }
            writer.WriteEndElement();
        }
예제 #2
0
        private void WriteToLog(WritingSystemLogEvent logEvent)
        {
            //_logEvents.Clear();
            _logEvents.Add(logEvent);
            if (File.Exists(_dataMapper.FilePath))
            {
                _dataMapper.AppendEvent(logEvent);
            }
            else
            {
                _dataMapper.Write(this);
            }

            //_dataMapper.Read(this);
        }
 public void AppendEvent(WritingSystemLogEvent logEvent)
 {
     using (StreamReader streamReader = File.OpenText(FilePath))
     {
         using (XmlReader reader = XmlReader.Create(streamReader, _xmlReadSettings))
         {
             using (var streamWriter = new StreamWriter(_tempWriteFilePath))
             {
                 using (var writer = XmlWriter.Create(streamWriter, CanonicalXmlSettings.CreateXmlWriterSettings()))
                 {
                     CopyUntilEndOfChanges(reader, writer);
                     WriteLogEvent(writer, logEvent);
                     writer.WriteEndElement(); // Changes
                     writer.WriteEndElement(); // WritingSystemChangeLog
                     writer.Close();
                 }
             }
         }
     }
     File.Delete(FilePath);
     File.Move(_tempWriteFilePath, FilePath);
 }
예제 #4
0
 public void AppendEvent(WritingSystemLogEvent logEvent)
 {
     using (StreamReader streamReader = File.OpenText(FilePath))
     {
         using (XmlReader reader = XmlReader.Create(streamReader, _xmlReadSettings))
         {
             using (var streamWriter = new StreamWriter(_tempWriteFilePath))
             {
                 using (var writer = XmlWriter.Create(streamWriter, CanonicalXmlSettings.CreateXmlWriterSettings()))
                 {
                     CopyUntilEndOfChanges(reader, writer);
                     WriteLogEvent(writer, logEvent);
                     writer.WriteEndElement();                             // Changes
                     writer.WriteEndElement();                             // WritingSystemChangeLog
                     writer.Close();
                 }
             }
         }
     }
     File.Delete(FilePath);
     File.Move(_tempWriteFilePath, FilePath);
 }
 private static void WriteLogEvent(XmlWriter writer, WritingSystemLogEvent logEvent)
 {
     writer.WriteStartElement(logEvent.Type);
     writer.WriteAttributeString("Producer", logEvent.Producer);
     writer.WriteAttributeString("ProducerVersion", logEvent.ProducerVersion);
     writer.WriteAttributeString("TimeStamp", logEvent.DateTime.ToISO8601TimeFormatWithUTCString());
     switch (logEvent.Type)
     {
         case "Change":
             var changeEvent = (WritingSystemLogChangeEvent)logEvent;
             writer.WriteElementString("From", changeEvent.From);
             writer.WriteElementString("To", changeEvent.To);
             break;
         case "Merge":
             var conflateEvent = (WritingSystemLogConflateEvent)logEvent;
             writer.WriteElementString("From", conflateEvent.From);
             writer.WriteElementString("To", conflateEvent.To);
             break;
         case "Delete":
             var deleteEvent = (WritingSystemLogDeleteEvent)logEvent;
             writer.WriteElementString("Id", deleteEvent.ID);
             break;
         case "Add":
             var addEvent = (WritingSystemLogAddEvent)logEvent;
             writer.WriteElementString("Id", addEvent.ID);
             break;
     }
     writer.WriteEndElement();
 }
예제 #6
0
 public void AppendEvent(WritingSystemLogEvent logEvent)
 {
 }
예제 #7
0
 // only intended for use by the datamapper
 internal void AddEvent(WritingSystemLogEvent logEvent)
 {
     _logEvents.Add(logEvent);
 }
예제 #8
0
 public void AppendEvent(WritingSystemLogEvent logEvent)
 {
 }
예제 #9
0
        private void WriteToLog(WritingSystemLogEvent logEvent)
        {
            //_logEvents.Clear();
            _logEvents.Add(logEvent);
            if (File.Exists(_dataMapper.FilePath))
            {
                _dataMapper.AppendEvent(logEvent);
            }
            else
            {
                _dataMapper.Write(this);
            }

            //_dataMapper.Read(this);
        }
예제 #10
0
 // only intended for use by the datamapper
 internal void AddEvent(WritingSystemLogEvent logEvent)
 {
     _logEvents.Add(logEvent);
 }