Beispiel #1
0
        public PsnDataFaultReasonStorageFtpStream(IStreamedData relayOnStream, IIdentifier id)
        {
            _relayOnStream = relayOnStream;
            _id            = id;
            _faultReason   = new Lazy <string>(() => {
                var buffer = new byte[10];
                using (var stream = _relayOnStream.GetStreamForReading()) {
                    stream.Read(buffer, 0, 10);
                }

                var result = string.Empty;
                result    += "Номер протокола: 0x" + buffer[0].ToString("X2") + buffer[1].ToString("X2") + Environment.NewLine;
                result    += "Причина создания дампа: "
                             + buffer[3].ToString("X2") + " "
                             + buffer[4].ToString("X2") + " "
                             + buffer[5].ToString("X2") + " "
                             + buffer[6].ToString("X2") + " "
                             + "  "
                             + buffer[7].ToString("X2") + " "
                             + buffer[8].ToString("X2") + " "
                             + buffer[9].ToString("X2") + " "
                             + buffer[10].ToString("X2");
                return(result);
            });
        }
Beispiel #2
0
 private XDocument ReadXDocFromStream()
 {
     try
     {
         using (var stream = _streamReadableObject.GetStreamForReading())
         {
             return(XDocument.Load(stream));
         }
     }
     catch {
         // Бывает так, что файл не удается прочитать документ из потока (например, если файл был только что создан)
         return(new XDocument(new XElement("PsnDataInformations")));
     }
 }
Beispiel #3
0
        public void Add(IIdentifier id, IStreamedData data)
        {
            var filename = Path.Combine(_directoryPath, id.IdentyString);

            if (File.Exists(filename))
            {
                throw new Exception("File allready exists " + filename);
            }
            using (var dst = File.Create(filename)) {
                using (var src = data.GetStreamForReading()) {
                    src.CopyTo(dst);
                }
            }
        }
Beispiel #4
0
        public IStreamedData Add(IIdentifier id, IStreamedData data, Action <double> progressChangeAction)
        {
            var saveFilename = Path.Combine(_path, "PSN." + id + ".data.bin");

            if (File.Exists(saveFilename))
            {
                throw new Exception("Ћог с такими данными уже сохранен в репозитории");
            }

            using (var s = data.GetStreamForReading()) {
                using (var d = File.Create(saveFilename)) {
                    s.CopyToWithProgress(d, progressChangeAction);
                }
            }
            return(new StreamedFile(saveFilename));
        }
Beispiel #5
0
        private XDocument ReadXDocFromStream()
        {
            XDocument doc;

            try
            {
                var stream = _streamReadableObject.GetStreamForReading();
                using (stream)
                {
                    doc = XDocument.Load(stream);
                }
            }
            catch {
                // Бывает так, что файл не удается прочитать документ из потока (например, если файл был только что создан)
                doc = new XDocument(new XElement(RootXmlElementName));
            }
            return(doc);
        }
Beispiel #6
0
        private XDocument ReadXDocFromStream()
        {
            XDocument doc;

            try
            {
                using (var stream = _streamReadableObject.GetStreamForReading())
                {
                    doc = XDocument.Load(stream);
                }
            }
            catch            //(Exception ex)
            {
                // Ѕывает так, что файл не удаетс¤ прочитать документ из потока (например, если файл был только что создан)
                doc = new XDocument(new XElement("DeviceInformations"));
            }
            return(doc);
        }
Beispiel #7
0
 public IStreamedData Add(IIdentifier id, IStreamedData sourceData, Action <double> progressChangeAction)
 {
     progressChangeAction(0.0);
     using (var zipFile = CreateZipFileInstance(_zipFilename))
     {
         var saveFilename = "PSN." + id + ".data.bin";
         if (zipFile.ContainsEntry(saveFilename))
         {
             throw new Exception("Ћог с такими данными уже сохранен в репозитории");
         }
         progressChangeAction(25.0);
         using (var stream = sourceData.GetStreamForReading()) {
             progressChangeAction(50.0);
             zipFile.UpdateEntry(saveFilename, stream);
             progressChangeAction(75.0);
             zipFile.Save();                     // Ќевозможно использовать вне блока using
         }
         progressChangeAction(100.0);
         return(new PsnDataRelayStream(new StreamedZippedFile(_zipFilename, saveFilename), id));
     }
 }
Beispiel #8
0
 public Stream GetStreamForReading()
 {
     return(_data.GetStreamForReading());
 }
Beispiel #9
0
        public Stream GetStreamForReading()
        {
            var stream = _relayOnStream.GetStreamForReading();

            return(stream);
        }
Beispiel #10
0
 public Stream GetStreamForReading()
 {
     return(new ReadOnlySubStream(_streamReadableObject.GetStreamForReading(), _beginPositionInStream, _streamLength));
 }