private async Task <DataExportMeta> CreateDataExportFileAsync() { var xm = new DataExportMeta(DateTime.Now); var dataFiles = new Dictionary <string, Task <MemoryStream> > { { $"{nameof(OpenComplaints)}_{xm.FileDateString}.csv", OpenComplaintsCsvStreamAsync() }, { $"{nameof(ClosedComplaints)}_{xm.FileDateString}.csv", ClosedComplaintsCsvStreamAsync() }, { $"{nameof(ClosedComplaintActions)}_{xm.FileDateString}.csv", ClosedComplaintActionsCsvStreamAsync() } }; await System.IO.File.WriteAllBytesAsync(xm.FilePath, await dataFiles.GetZipByteArrayAsync()); return(xm); }
private async Task <DataExportMeta> GetOrCreateDataExportAsync() { if (!_cache.TryGetValue(CacheKeys.DataExportDate, out DataExportMeta xm)) { xm = new DataExportMeta(DateTime.Now); } if (!System.IO.File.Exists(xm.FilePath) || new FileInfo(xm.FilePath).Length == 0) { _cache.Remove(CacheKeys.DataExportDate); await DeleteOldExportFilesAsync(); xm = await CreateDataExportFileAsync(); } _cache.Set(CacheKeys.DataExportDate, xm, xm.FileExpirationDate); return(xm); }