/// <summary> /// Generate the associated report file based on the ReportFactory provided. /// </summary> /// <param name="self">The Report Factory referenced by the extension method</param> /// <returns></returns> public static async Task <ReportFile> WriteReport(this IReportFactory self) { ReportFile res; string fileName = $"{Guid.NewGuid()}.csv"; string path = $"{REPORT_DIR}/{fileName}"; System.IO.File.WriteAllText(path, await self.GenerateCsv()); using (var db = new Db()) { db.ReportFiles.Add(res = new ReportFile() { CreatedAt = DateTime.Now, FileName = fileName, Type = self.Type }); await db.SaveChangesAsync(); } return(res); }