示例#1
0
        private void RemoveEntries(Func <IDEEvent, bool> removeCondition)
        {
            var tempFileName = _ioUtils.GetTempFileName();
            var removed      = new List <IDEEvent>();

            using (var stream = _ioUtils.OpenFile(tempFileName, FileMode.Append, FileAccess.Write))
            {
                using (var writer = new JsonLogWriter <IDEEvent>(stream))
                {
                    using (var reader = NewLogReader())
                    {
                        reader.ReadAll().ForEach(
                            entry =>
                        {
                            if (!removeCondition(entry))
                            {
                                writer.Write(entry);
                            }
                            else
                            {
                                removed.Add(entry);
                            }
                        });
                    }
                }
            }

            _ioUtils.DeleteFile(Path);
            _ioUtils.MoveFile(tempFileName, Path);
            EntriesRemoved(removed);
        }
示例#2
0
        public void ShouldAppendToStreamWrittenByOtherWriter()
        {
            var writer = new JsonLogWriter <object>(_logStream);

            writer.Write(new SerializationTestTarget {
                Id = "foo"
            });

            _writer.Write(new SerializationTestTarget {
                Id = "bar"
            });

            var serialization = _logStream.AsString();

            Assert.AreEqual("{\"$type\":\"KaVE.Commons.Tests.Utils.Json.SerializationTestTarget, KaVE.Commons.Tests\",\"Id\":\"foo\"}\r\n{\"$type\":\"KaVE.Commons.Tests.Utils.Json.SerializationTestTarget, KaVE.Commons.Tests\",\"Id\":\"bar\"}\r\n", serialization);
        }