/// <summary>
        ///     Get Import status of the importing task.
        /// </summary>
        /// <param name="importRunId">Import run ID.</param>
        /// <returns>Returns the import status info.</returns>
        public ImportResultInfo GetImportStatus(long importRunId)
        {
            ImportRun importRun = GetImportRun(importRunId);

            ImportResultInfo result = GetImportResultInfo(importRun);

            return(result);
        }
        /// <summary>
        /// Extracts general progress/result information from an import run.
        /// </summary>
        /// <param name="importRun">The import run entity.</param>
        /// <returns>Result object.</returns>
        private ImportResultInfo GetImportResultInfo(ImportRun importRun)
        {
            ImportResultInfo result = new ImportResultInfo
            {
                ImportStatus     = ImportHelpers.GetImportStatus(importRun),
                ImportMessages   = importRun.ImportMessages,
                RecordsTotal     = importRun.ImportRecordsTotal ?? 0,
                RecordsSucceeded = importRun.ImportRecordsSucceeded ?? 0,
                RecordsFailed    = importRun.ImportRecordsFailed ?? 0
            };

            return(result);
        }
        /// <summary>
        ///     Packs the import result information.
        /// </summary>
        /// <param name="result">The result.</param>
        /// <returns></returns>
        private ImportResultInfo PackImportResultInfo(Interface.ImportResultInfo result)
        {
            ImportStatus importStatus;
            var          data = new ImportResultInfo
            {
                ImportStatus     = Enum.TryParse(result.ImportStatus.ToString( ), true, out importStatus) ? importStatus : ImportStatus.InProgress,
                ImportMessages   = result.ImportMessages,
                RecordsSucceeded = result.RecordsSucceeded,
                RecordsFailed    = result.RecordsFailed,
                RecordsTotal     = result.RecordsTotal
            };

            return(data);
        }
        /// <summary>
        ///     Cancel Import operation.
        /// </summary>
        /// <param name="importRunId">Import run ID.</param>
        /// <returns>Returns the import status info.</returns>
        public ImportResultInfo CancelImportOperation(long importRunId)
        {
            ImportRun importRun = GetImportRun(importRunId).AsWritable <ImportRun>( );

            // Check status - only cancel if still running
            ImportStatus importStatus = ImportHelpers.GetImportStatus(importRun);

            if (importStatus == ImportStatus.InProgress)
            {
                // Cancel
                importRun.ImportRunStatus_Enum = WorkflowRunState_Enumeration.WorkflowRunCancelled;
                importRun.Save( );
            }

            ImportResultInfo result = GetImportResultInfo(importRun);

            return(result);
        }