public override void Run() { object obj; var numberOfObjects = 0L; var numberOfObjectByType = new Dictionary<Type, long>(); using(var input = File.OpenRead(_path)) using(var reader = new DecoratedObjectReader(input)) { while((obj = reader.Read<object>()) != null) { ++numberOfObjects; if(numberOfObjectByType.ContainsKey(obj.GetType())) { ++numberOfObjectByType[obj.GetType()]; } else { numberOfObjectByType[obj.GetType()] = 1; } } } var fileInfo = new FileInfo(_path); WriteStatistics(new Statistics { FileName = fileInfo.Name, FileLength = fileInfo.Length, NumberOfObjects = numberOfObjects, NumberOfObjectByType = numberOfObjectByType }); }
public override void Run() { object obj; using(var input = File.OpenRead(_path)) using(var reader = new DecoratedObjectReader(input)) { while((obj = reader.Read<object>()) != null) { Console.WriteLine("{0}", obj); } } }
private void Fixup(string srcPath, string dstPath) { Message message; var stats = new Statistics(); var classifier = new MessageClassifier(); var translator = new LiveMessageTranslator(); using(var input = File.OpenRead(srcPath)) using(var reader = new DecoratedObjectReader(input)) using(var output = File.Create(dstPath)) using(var writer = new DecoratedObjectWriter(output)) { while(true) { if((message = reader.Read<Message>()) == null) { break; } ++stats.Read; if(classifier.IsTranslated(message)) { ++stats.OrgTranslated; continue; } writer.Write(message); ++stats.Written; if((message = translator.Translate(message)) != null) { if(message is CompositeMessage) { foreach(var component in ((CompositeMessage)message).Messages) { writer.Write(component); ++stats.Written; ++stats.NewTranslated; } } else { writer.Write(message); ++stats.Written; ++stats.NewTranslated; } } } writer.Write(null); } stats.Print(); }
public override void Run() { Message message; SessionModel session = new SessionModel(); using(var input = File.OpenRead(_path)) using(var reader = new DecoratedObjectReader(input)) { while((message = reader.Read<Message>()) != null) { session.Process(message); } } session.Print(); }