Пример #1
0
        private IProductionEvents Deserialize(MemoryStream stream)
        {
            IProductionEvents events = null;

            using (var reader = new BinaryReader(stream, Encoding.UTF8, true))
            {
                if (stream.Length < 16)
                {
                    return(events);
                }

                stream.Position = 1; // Skip the version to get the event list type

                var eventType = reader.ReadInt32();
                if (!Enum.IsDefined(typeof(ProductionEventType), eventType))
                {
                    return(events);
                }

                events = DIContext.Obtain <IProductionEventsFactory>().NewEventList(-1, Guid.Empty, (ProductionEventType)eventType);

                stream.Position = 0;
                events.ReadEvents(reader);
            }

            return(events);
        }