private async Task <byte[]> ExportToCsvAsync <T>(decimal submissionObjectId, IReportExportRepository <T> repo) where T : IReportExportDto { var report = await repo.ExportReportAsync(submissionObjectId); if (report.Count() == 0) { return(null); } var rptCsv = string.Join(Environment.NewLine, report.Select(x => x.ToCsv())); rptCsv = $"{CsvUtils.GetCsvHeader<T>()}{Environment.NewLine}{rptCsv}"; var encoding = new UTF8Encoding(); return(encoding.GetBytes(rptCsv)); }
public async Task <IActionResult> GetUsersByFilterAsync( [FromQuery] string?serviceAreas, [FromQuery] string?userTypes, [FromQuery] string searchText, [FromQuery] bool?isActive, [FromQuery] string fileName) { fileName = fileName.IsEmpty()?"export_user.csv": fileName; var exportedUsers = await _userService.GetUsersByFilterAsync(serviceAreas.ToDecimalArray(), userTypes.ToStringArray(), searchText, isActive); if (exportedUsers == null || exportedUsers.Count() == 0) { return(NotFound()); } var rptCsv = string.Join(Environment.NewLine, exportedUsers.Select(x => x.ToCsv())); rptCsv = $"{CsvUtils.GetCsvHeader<UserSearchExportDto>()}{Environment.NewLine}{rptCsv}"; var encoding = new UTF8Encoding(); var bytes = encoding.GetBytes(rptCsv); return(File(bytes, "text/csv;charset=UTF-8", fileName)); }
public async Task <IActionResult> GetActvitityCodesByFilterAsync( string?maintenanceTypes, string?locationCodes, bool?isActive, string?searchText, string fileName) { fileName = fileName.IsEmpty() ? "export_activities.csv" : fileName; var exportedActivities = await _activityCodeSvc.GetActivityCodesByFilterAsync(maintenanceTypes.ToStringArray(), locationCodes.ToDecimalArray(), isActive, searchText); if (exportedActivities == null || exportedActivities.Count() == 0) { return(NotFound()); } var csvReport = string.Join(Environment.NewLine, exportedActivities.Select(x => x.ToCsv())); csvReport = $"{CsvUtils.GetCsvHeader<ActivityCodeSearchExportDto>()}{Environment.NewLine}{csvReport}"; var encoding = new UTF8Encoding(); var bytes = encoding.GetBytes(csvReport); return(File(bytes, "text/csv;charset=UTF-8", fileName)); }