/// <summary> /// Exports the files. /// </summary> public void ExportFiles() { CompanyBL companyBL = new CompanyBL(DataContext); int queuedStatusCodeId = Utils.GetCodeIdByCodeValue("ExportFileStatus", "QUEUED"); int deletedStatusCodeId = Utils.GetCodeIdByCodeValue("ExportFileStatus", "DELETED"); long fileSize = 0; var queuedExportFileRequests = companyBL.GetAllQueuedExportFileRequests(); // Loop all export file requests. foreach (ExportFile exportFileRequest in queuedExportFileRequests) { bool isSuccess = false; // If a new request if (exportFileRequest.ExportFileStatusCodeId == queuedStatusCodeId) { switch (exportFileRequest.RelatedTable) { case "Project": isSuccess = CreateProjectExportFile(exportFileRequest.RelatedId, exportFileRequest.CreatedByUserId, out fileSize); break; case "Company": isSuccess = CreateCompanyExportFile(exportFileRequest.RelatedId, exportFileRequest.CreatedByUserId, out fileSize); break; } if (isSuccess) { exportFileRequest.ExportFileStatusCodeId = Utils.GetCodeIdByCodeValue("ExportFileStatus", "COMPLETED"); exportFileRequest.FileSize = fileSize; } } // If a delete request. else if (exportFileRequest.ExportFileStatusCodeId == deletedStatusCodeId) //Pending Delete { switch (exportFileRequest.RelatedTable) { case "Project": isSuccess = DeletePendingRemovalProjectFiles(exportFileRequest.RelatedId); break; case "Company": isSuccess = DeletePendingRemovalCompanyFiles(exportFileRequest.RelatedId); break; } if (isSuccess) { exportFileRequest.IsActive = false; } } } DataContext.SaveChanges();//Should not be placed with in the foreach }