public IActionResult ExportRegistrationsToExcel(int id, [Bind] ExcelExportParams exportParams) { var singers = _singerMapper.FindBy(s => s.IsActive).ToList(); var eventRegistrations = _eventRegistrationMapper.FindBy(er => er.EventId == id).ToList(); var @event = _eventMapper.Find(id); var excelWorkbook = ExcelExporter.ExportRegistrations(singers, eventRegistrations, @event, exportParams.Registered, exportParams.Unregistered, exportParams.WithoutRegistration); var memory = new MemoryStream(); var fileName = $"Registrace-{DateTime.Now.ToString("d-M-yyyy-H-mm")}.xlsx"; var filePath = Path.Combine(_hostingEnvironment.WebRootPath, fileName); using (var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { excelWorkbook.Write(fs); } using (var stream = new FileStream(filePath, FileMode.Open)) { stream.CopyTo(memory); } memory.Position = 0; if (System.IO.File.Exists(filePath)) { System.IO.File.Delete(filePath); } return(File(memory, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName)); }
private IEnumerable CollectData(ExcelExportParams parameters) { if (parameters.Export == "comments") { return(CommentService.GetCommentsByUser(parameters.UserId)); } else { return(PostService.GetPostsByUser(parameters.UserId)); } }
private ExcelExportParams ExtractParams(NameValueCollection parameters) { ExcelExportParams settings = new ExcelExportParams(); var userId = parameters["id"]; var export = parameters["export"]; if (userId != null) { settings.UserId = int.Parse(userId); } else { settings.UserId = 0; } if (export != null) { settings.Export = export; } else { settings.Export = null; } return(settings); }