private void ReadExcelData(DataGrid dataGrid)
        {
            try
            {
                using (var package = new ExcelPackage(new FileInfo(FileName)))
                {
                    Application.Current.Dispatcher.Invoke(() => CleanDataItems.Clear());
                    CorruptValueCount = 0;
                    var workbook = package.Workbook;

                    foreach (var worksheet in workbook.Worksheets)
                    {
                        for (var row = 1; row <= worksheet.Dimension.Rows; row++)
                        {
                            var columnsList = new CleanDataEntity();
                            for (var column = 1; column <= worksheet.Dimension.Columns; column++)
                            {
                                var columnText = worksheet.Cells[row, column].Text;
                                columnsList.Data.Add(column, columnText);
                                if (IsCorruptValuesChecked && Regex.Match(columnText, $"{RegularExpression}").Success)
                                {
                                    columnsList.ContainsSpecialCharacter = true;
                                    CorruptValueCount++;
                                }
                            }
                            columnsList.Id = row;
                            Application.Current.Dispatcher.Invoke(() => CleanDataItems.Add(columnsList));
                            if (IsLimitRowsChecked && RowReadLimit > 0 && row >= RowReadLimit)
                            {
                                break;
                            }
                        }

                        CheckAndSetDuplicates();
                        CreateColumnsAndBindings(dataGrid, worksheet.Dimension.Columns);
                    }
                }
            }
            catch (Exception ex)
            {
                _exceptionLogDataAccess.LogException(ex.ToString());
            }
        }
        private void ReadCSVFile(DataGrid dataGrid)
        {
            using (var streamReader = new StreamReader(FileName))
            {
                Application.Current.Dispatcher.Invoke(() => CleanDataItems.Clear());
                var columnsDictionary = new Dictionary <int, string>();
                CorruptValueCount = 0;
                var columnCount = 0;
                var rowCount    = 0;
                while (!streamReader.EndOfStream)
                {
                    var line    = streamReader.ReadLine();
                    var columns = line.Split(',');
                    if (!string.IsNullOrEmpty(line) && line.Contains(","))
                    {
                        var columnsList = new CleanDataEntity();
                        var colCount    = 0;
                        foreach (var column in columns)
                        {
                            columnsList.Data.Add(colCount, column);
                            if (IsCorruptValuesChecked && Regex.Match(column, $"{RegularExpression}").Success)
                            {
                                columnsList.ContainsSpecialCharacter = true;
                                CorruptValueCount++;
                            }
                            colCount++;
                        }
                        columnsList.Id = rowCount;
                        Application.Current.Dispatcher.Invoke(() => CleanDataItems.Add(columnsList));
                        columnCount = colCount;
                    }

                    rowCount++;
                    if (IsLimitRowsChecked && RowReadLimit > 0 && rowCount >= RowReadLimit)
                    {
                        break;
                    }
                }

                CheckAndSetDuplicates();
                CreateColumnsAndBindings(dataGrid, columnCount);
            }
        }