Esempio n. 1
0
        public PortableData Create()
        {
            // 1. Decrypt stream
            ExportDataEncryptor decryptor =
                new ExportDataEncryptor(dataStream);
            MemoryStream decrypted = new MemoryStream();

            decryptor.Decrypt(decrypted);
            decrypted.Position = 0;

            // 2. Decompress stream
            ExportDataCompressor decompressor =
                new ExportDataCompressor(decrypted);
            MemoryStream decompressed = new MemoryStream();

            decompressor.Decompress(decompressed);
            decompressed.Position = 0;

            // 3. Deserialize stream
            PsaTracesSerializer deserializer =
                new PsaTracesSerializer();
            PortableData result = deserializer.Deserialize(decompressed);

            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// Deserialization
        /// </summary>
        /// <param name="root"></param>
        /// <param name="result"></param>
        private void ReadTraces(XElement root, PortableData result)
        {
            IEnumerable <XElement> traceElements =
                root.Element(PsaTracesName).Elements(TraceName);

            foreach (XElement traceElement in traceElements)
            {
                PsaTrace trace = ReadTraceElement(traceElement);
                result.PsaTraces.Add(trace);
            }
        }
Esempio n. 3
0
        public PortableData Deserialize(Stream stream)
        {
            PortableData result = new PortableData();
            XDocument    doc    = XDocument.Load(stream);
            XElement     root   = doc.Root;
            XElement     header = root.Element(HeaderName);

            DateTime dt;

            DateTime.TryParse(header.Element(DateName).Value,
                              CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);
            result.Date    = dt;
            result.Guid    = Guid.Parse(header.Element(GuidName).Value);
            result.Version = new Version(header.Element(VersionName).Value);

            ReadTraces(root, result);
            return(result);
        }