public void CreateCumulativeFileAndPost(string incrementalFilePath, string cumulativeFilePath, string finalFilename)
        {
            var incrementalDataTable = CreateDataTable(incrementalFilePath);
            var cumulativeDataTable  = CreateDataTable(cumulativeFilePath);

            DirectoryOperationsHelper.DeleteFileIfExist(finalFilename);

            _logger.Info("Cumulative file Path: " + cumulativeFilePath);
            _logger.Info("Incremental file Path: " + incrementalFilePath);
            _logger.Info("final file Path: " + finalFilename);

            if (cumulativeDataTable == null || cumulativeDataTable.Rows == null || cumulativeDataTable.Rows.Count <= 0)
            {
                if (incrementalDataTable != null && incrementalDataTable.Rows != null && incrementalDataTable.Rows.Count > 0)
                {
                    DirectoryOperationsHelper.DeleteFileIfExist(cumulativeFilePath);
                    DirectoryOperationsHelper.Copy(incrementalFilePath, cumulativeFilePath);
                    DirectoryOperationsHelper.Copy(cumulativeFilePath, finalFilename);
                }
            }
            else if (incrementalDataTable == null || incrementalDataTable.Rows == null || incrementalDataTable.Rows.Count <= 0)
            {
                if (cumulativeDataTable.Rows != null && cumulativeDataTable.Rows.Count > 0)
                {
                    DirectoryOperationsHelper.Copy(cumulativeFilePath, finalFilename);
                }
            }
            else
            {
                var nameOfCustomerIdColumn = GetColumnName(cumulativeDataTable, "Id_$$");
                var nameOfEventIdColumn    = GetColumnName(cumulativeDataTable, "Event Id_$$");
                var nameOfEventDateColumn  = GetColumnName(cumulativeDataTable, "Event Date_$$");

                var tempAccumulativeDataTable = CreateAccumulativeDataTable(cumulativeDataTable, incrementalDataTable, nameOfCustomerIdColumn, nameOfEventIdColumn, nameOfEventDateColumn);

                if (tempAccumulativeDataTable != null && tempAccumulativeDataTable.Rows != null &&
                    tempAccumulativeDataTable.Rows.Count > 0)
                {
                    if (DirectoryOperationsHelper.IsFileExist(cumulativeFilePath))
                    {
                        _logger.Info("Final Record: " + tempAccumulativeDataTable.Rows.Count);
                    }

                    _csvReader.ConvertDataTableToCsv(tempAccumulativeDataTable, cumulativeFilePath, "_$$");

                    if (DirectoryOperationsHelper.IsFileExist(cumulativeFilePath))
                    {
                        _logger.Info("Final Record: " + tempAccumulativeDataTable.Rows.Count);
                    }

                    if (DirectoryOperationsHelper.IsDirectoryExist(Path.GetDirectoryName(cumulativeFilePath)))
                    {
                        _logger.Info("cumulativeFilePath: " + cumulativeFilePath + " exists");
                    }
                    else
                    {
                        _logger.Info("cumulativeFilePath: " + cumulativeFilePath + " Not exists");
                    }

                    DirectoryOperationsHelper.Copy(cumulativeFilePath, finalFilename);
                }
            }
        }