Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }