Ejemplo n.º 1
0
        private void CrimsonToE2e(string sourceFileName, string convertedFilename)
        {
            int num = 0;

            using (InternalCrimsonToE2eConvertingParameter internalCrimsonToE2eConvertingParameter = new InternalCrimsonToE2eConvertingParameter())
            {
                internalCrimsonToE2eConvertingParameter.SourceFileName    = sourceFileName;
                internalCrimsonToE2eConvertingParameter.ConvertedFilename = convertedFilename;
                progressReport.Begin(100);
                if (!ThreadPool.QueueUserWorkItem(CrimsonToE2eThreadProc, internalCrimsonToE2eConvertingParameter))
                {
                }
                while (!internalCrimsonToE2eConvertingParameter.IsFinished)
                {
                    internalCrimsonToE2eConvertingParameter.TraceConvertedEvent.WaitOne();
                    if (internalCrimsonToE2eConvertingParameter.Percentage != num && internalCrimsonToE2eConvertingParameter.Percentage > num)
                    {
                        for (int i = 0; i < internalCrimsonToE2eConvertingParameter.Percentage - num; i++)
                        {
                            progressReport.Step();
                        }
                        num = internalCrimsonToE2eConvertingParameter.Percentage;
                    }
                }
                progressReport.Complete();
                if (internalCrimsonToE2eConvertingParameter.Exception != null)
                {
                    throw internalCrimsonToE2eConvertingParameter.Exception;
                }
            }
        }
Ejemplo n.º 2
0
 private void CrimsonToE2eThreadProc(object o)
 {
     if (o != null && o is InternalCrimsonToE2eConvertingParameter)
     {
         InternalCrimsonToE2eConvertingParameter internalCrimsonToE2eConvertingParameter = (InternalCrimsonToE2eConvertingParameter)o;
         if (!string.IsNullOrEmpty(internalCrimsonToE2eConvertingParameter.SourceFileName) && !string.IsNullOrEmpty(internalCrimsonToE2eConvertingParameter.ConvertedFilename))
         {
             FileStream fileStream  = null;
             FileStream fileStream2 = null;
             try
             {
                 fileStream = Utilities.CreateFileStreamHelper(internalCrimsonToE2eConvertingParameter.SourceFileName);
                 if (fileStream.Length > 0)
                 {
                     List <InternalTargetTraceRecord> list = new List <InternalTargetTraceRecord>();
                     fileStream2 = Utilities.CreateFileStreamHelper(internalCrimsonToE2eConvertingParameter.ConvertedFilename, FileMode.Create, FileAccess.Write, FileShare.Read);
                     XmlTextReader xmlTextReader = new XmlTextReader(fileStream, XmlNodeType.Element, null);
                     XmlWriter     xmlWriter     = new XmlTextWriter(fileStream2, Encoding.UTF8);
                     xmlTextReader.WhitespaceHandling = WhitespaceHandling.None;
                     xmlTextReader.MoveToContent();
                     while (InternalReadToXml(xmlTextReader, "Event"))
                     {
                         string text = xmlTextReader.ReadOuterXml();
                         if (!string.IsNullOrEmpty(text))
                         {
                             InternalTargetTraceRecord item = InternalConstructTargetTraceRecordXml(text);
                             list.Add(item);
                         }
                         internalCrimsonToE2eConvertingParameter.Percentage = (int)((double)fileStream.Position / (double)fileStream.Length);
                         internalCrimsonToE2eConvertingParameter.TraceConvertedEvent.Set();
                     }
                     OutputCrimsonToE2EResults(list, xmlWriter);
                     xmlWriter.Flush();
                 }
             }
             catch (LogFileException ex)
             {
                 InternalCrimsonToE2eConvertingParameter internalCrimsonToE2eConvertingParameter2 = internalCrimsonToE2eConvertingParameter;
                 internalCrimsonToE2eConvertingParameter2.Exception = new FileConverterException(internalCrimsonToE2eConvertingParameter2.SourceFileName, internalCrimsonToE2eConvertingParameter.ConvertedFilename, ex.Message, ex);
             }
             catch (ArgumentException e)
             {
                 InternalCrimsonToE2eConvertingParameter internalCrimsonToE2eConvertingParameter3 = internalCrimsonToE2eConvertingParameter;
                 internalCrimsonToE2eConvertingParameter3.Exception = new FileConverterException(internalCrimsonToE2eConvertingParameter3.SourceFileName, internalCrimsonToE2eConvertingParameter.ConvertedFilename, SR.GetString("MsgCannotWriteToFile") + internalCrimsonToE2eConvertingParameter.ConvertedFilename + SR.GetString("MsgCannotWriteToFileEnd"), e);
             }
             catch (XmlException ex2)
             {
                 errorReport.ReportErrorToUser(new FileConverterException(internalCrimsonToE2eConvertingParameter.SourceFileName, internalCrimsonToE2eConvertingParameter.ConvertedFilename, SR.GetString("MsgErrorOccursOnConvertCrimson") + ex2.Message + SR.GetString("MsgCannotWriteToFileEnd"), ex2));
             }
             finally
             {
                 Utilities.CloseStreamWithoutException(fileStream, isFlushStream: false);
                 Utilities.CloseStreamWithoutException(fileStream2, isFlushStream: false);
                 internalCrimsonToE2eConvertingParameter.IsFinished = true;
                 internalCrimsonToE2eConvertingParameter.TraceConvertedEvent.Set();
             }
         }
     }
 }