protected override void BeginWork()
        {
            try
            {
                base.BeginWork();
                m_Parameters = GetImportBEO(BootParameters);
                m_Parameters.ShouldNotBe(null);
                m_LoadFileUri = new Uri(m_Parameters.Locations.First());

                m_ColumnDelimiter  = (char)m_Parameters.LoadFile.ColumnDelimiter;
                m_QuoteCharacter   = (char)m_Parameters.LoadFile.QuoteCharacter;
                m_NewlineCharacter = (char)m_Parameters.LoadFile.NewlineDelimiter;

                m_RecordTokenizer   = new RecordTokenizer(m_ColumnDelimiter, m_QuoteCharacter);
                m_EncodingType      = Encoding.GetEncoding(m_Parameters.LoadFile.EncodingType);
                m_IsFirstLineHeader = m_Parameters.LoadFile.IsFirstLineHeader;

                var loadFilePath = HttpUtility.UrlDecode(m_LoadFileUri.OriginalString);
                ReportToDirector("LoadFileParser works on load file {0}", loadFilePath);
                m_StreamReader = new StreamReader(loadFilePath, m_EncodingType);

                #region Dataset Detaills

                m_Parameters.DatasetId.ShouldBeGreaterThan(0);
                m_Dataset = DataSetBO.GetDataSetDetailForDataSetId(m_Parameters.DatasetId);
                var matterDetails = MatterDAO.GetMatterDetails(m_Parameters.MatterId.ToString());
                matterDetails.ShouldNotBe(null);
                m_Dataset.Matter = matterDetails;
                var searchServerDetails = ServerDAO.GetSearchServer(matterDetails.SearchServer.Id);
                searchServerDetails.ShouldNotBe(null);
                m_Dataset.Matter.SearchServer = searchServerDetails;
                m_DatasetPath = m_Dataset.CompressedFileExtractionLocation;

                #endregion

                if (m_Parameters != null &&
                    m_Parameters.IsImportImages &&
                    m_Parameters.LoadFile.ImageFile != null &&
                    m_Parameters.LoadFile.ImageFile.ImageExtractionOption == LoadFileImageExtractionOption.HelperFile)
                {
                    var imageHelperFileName = m_Parameters.LoadFile.ImageFile.HelperFileName;
                    ReportToDirector("LoadFileParser uses image helper file {0}", imageHelperFileName);
                    _imageHelperFileParser = new HelperFileParser(this, imageHelperFileName);
                }

                if (m_Parameters != null &&
                    m_Parameters.LoadFile.ContentFile != null &&
                    m_Parameters.LoadFile.ContentFile.TextExtractionOption == LoadFileTextExtractionOption.HelperFile)
                {
                    var contentHelperFileName = m_Parameters.LoadFile.ContentFile.HelperFileName;
                    ReportToDirector("LoadFileParser uses content (text) helper file {0}", contentHelperFileName);
                    TextHelperFile = new HelperFile(this, contentHelperFileName);
                }

                if (null != m_Parameters &&
                    null != m_Parameters.LoadFile &&
                    null != m_Parameters.LoadFile.ContentFile &&
                    null != m_Parameters.LoadFile.ContentFile.LoadFileContentField)
                {
                    m_ContentFieldNumber = Convert.ToInt32(m_Parameters.LoadFile.ContentFile.LoadFileContentField);
                }

                _uniqueThreadString = Guid.NewGuid().ToString().Replace("-", "").ToUpper();

                SetMessageBatchSize(m_Parameters);
            }
            catch (Exception ex)
            {
                //Send log to Log Pipe
                LogMessage(false, Constants.ParserFailureMessageOnInitialize);
                ex.Trace();
                ReportToDirector("Exception in LoadFileParser.BeginWork", ex.ToDebugString());
                throw;
            }
        }
        protected override void BeginWork()
        {
            try
            {
                base.BeginWork();
                m_Parameters = GetImportBEO(BootParameters);
                m_Parameters.ShouldNotBe(null);
                m_LoadFileUri = new Uri(m_Parameters.Locations.First());

                m_ColumnDelimiter = (char) m_Parameters.LoadFile.ColumnDelimiter;
                m_QuoteCharacter = (char) m_Parameters.LoadFile.QuoteCharacter;
                m_NewlineCharacter = (char) m_Parameters.LoadFile.NewlineDelimiter;

                m_RecordTokenizer = new RecordTokenizer(m_ColumnDelimiter, m_QuoteCharacter);
                m_EncodingType = Encoding.GetEncoding(m_Parameters.LoadFile.EncodingType);
                m_IsFirstLineHeader = m_Parameters.LoadFile.IsFirstLineHeader;

                var loadFilePath = HttpUtility.UrlDecode(m_LoadFileUri.OriginalString);
                ReportToDirector("LoadFileParser works on load file {0}", loadFilePath);
                m_StreamReader = new StreamReader(loadFilePath, m_EncodingType);

                #region Dataset Detaills

                m_Parameters.DatasetId.ShouldBeGreaterThan(0);
                m_Dataset = DataSetBO.GetDataSetDetailForDataSetId(m_Parameters.DatasetId);
                var matterDetails = MatterDAO.GetMatterDetails(m_Parameters.MatterId.ToString());
                matterDetails.ShouldNotBe(null);
                m_Dataset.Matter = matterDetails;
                var searchServerDetails = ServerDAO.GetSearchServer(matterDetails.SearchServer.Id);
                searchServerDetails.ShouldNotBe(null);
                m_Dataset.Matter.SearchServer = searchServerDetails;
                m_DatasetPath = m_Dataset.CompressedFileExtractionLocation;

                #endregion

                if (m_Parameters != null &&
                    m_Parameters.IsImportImages &&
                    m_Parameters.LoadFile.ImageFile != null &&
                    m_Parameters.LoadFile.ImageFile.ImageExtractionOption == LoadFileImageExtractionOption.HelperFile)
                {
                    var imageHelperFileName = m_Parameters.LoadFile.ImageFile.HelperFileName;
                    ReportToDirector("LoadFileParser uses image helper file {0}", imageHelperFileName);
                    _imageHelperFileParser =new HelperFileParser(this,imageHelperFileName);
                }

                if (m_Parameters != null &&
                    m_Parameters.LoadFile.ContentFile != null &&
                    m_Parameters.LoadFile.ContentFile.TextExtractionOption == LoadFileTextExtractionOption.HelperFile)
                {
                    var contentHelperFileName = m_Parameters.LoadFile.ContentFile.HelperFileName;
                        ReportToDirector("LoadFileParser uses content (text) helper file {0}", contentHelperFileName);
                        TextHelperFile = new HelperFile(this, contentHelperFileName);
                    }

                if (null != m_Parameters &&
                    null != m_Parameters.LoadFile &&
                    null != m_Parameters.LoadFile.ContentFile &&
                    null != m_Parameters.LoadFile.ContentFile.LoadFileContentField)
                {
                    m_ContentFieldNumber = Convert.ToInt32(m_Parameters.LoadFile.ContentFile.LoadFileContentField);
                }

                _uniqueThreadString = Guid.NewGuid().ToString().Replace("-", "").ToUpper();

                SetMessageBatchSize(m_Parameters);
               
            }
            catch (Exception ex)
            {
                //Send log to Log Pipe
                LogMessage(false, Constants.ParserFailureMessageOnInitialize);
                ex.Trace();
                ReportToDirector("Exception in LoadFileParser.BeginWork", ex.ToDebugString());
                throw;
            }
        }