예제 #1
0
        /// <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);
        }