public async Task <IActionResult> Create(Export export) { try { export.Time = DateTime.Now; var createdExport = await expServ.Create(export); return(Ok(createdExport)); } catch (Exception ex) { Console.Error.WriteLine(ex.Message); return(StatusCode(500)); } }
private CsvFileEnumerable <TRecord> ExportAndGetRecordsFromList <TRecord>(int listId, string downloadDir, ExportContext context, Func <int, string> createFileName, TimeSpan?exportTimeout, CancellationToken cancellationToken) where TRecord : CsvRecord { int?exportId = null; var exportTimeoutNotNull = exportTimeout ?? TimeSpan.FromMinutes(5); try { var export = _exportService.Create(listId, context, cancellationToken); ConnectClient.Logger.Trace($"ExportReader-ExportAndGetRecordsFromList: Export {export.Id} created"); exportId = export.Id; var isReady = WaitForExportToFinish(exportId.Value, exportTimeoutNotNull, cancellationToken); if (!isReady) { ConnectClient.Logger.Trace($"ExportReader-ExportAndGetRecordsFromList: Export {exportId} not ready in time"); throw new ExportIsNotCompleteException(exportId.Value); } ConnectClient.Logger.Trace($"ExportReader-ExportAndGetRecordsFromList: Export {exportId} ready"); return(GetExportedRecords <TRecord>(exportId.Value, downloadDir, createFileName?.Invoke(exportId.Value), cancellationToken)); } finally { if (exportId.HasValue) { _exportService.Delete(exportId.Value, false, cancellationToken); } } }