or
<script type=
"text/javascript"
>
function
startReport(result) {
$.ajax({
url:
"HTTPHandlers/TagExportHandler.ashx"
,
context: document.body,
success:
function
(){
alert(
"done"
);
//Eventually put code to block UI and etc while report is rendering...
}
});
}
</script>
public
void
ProcessRequest(HttpContext context)
{
using
(var db =
new
TIPWebITDataContext())
{
string
_exportContent =
""
;
int
[] userDepartments = ((User)HttpContext.Current.Session[
"currentUser"
]).Departments.ToArray();
List<TagDetailsDepartments> tagsModelCsvDepartmentses =
null
;
List<TagDetailsNonDepartments> tagModelCsvNonDepartmentses =
null
;
var data = GetTagDetails(db,
""
);
CsvContext cc =
new
CsvContext();
using
(var writer =
new
System.IO.StreamWriter(context.Response.OutputStream))
{
CsvFileDescription output =
new
CsvFileDescription
{
QuoteAllFields =
true
,
EnforceCsvColumnAttribute =
true
};
context.Response.AddHeader(
"content-disposition"
,
"attachment; filename=TagExport.csv"
);
context.Response.ContentType =
"text/csv"
;
if
(userDepartments.Count() > 1)
{
tagsModelCsvDepartmentses = ((IQueryable<TagDetailsDepartments>)data).ToList();
cc.Write(tagsModelCsvDepartmentses.ToList(), writer, output);
}
else
{
tagModelCsvNonDepartmentses = ((IQueryable<TagDetailsNonDepartments>)data).ToList();
cc.Write(tagModelCsvNonDepartmentses.ToList(), writer, output);
}
context.Response.StatusCode = 200;
cc =
null
;
writer.Flush();
output =
null
;
}
data =
null
;
tagsModelCsvDepartmentses =
null
;
tagModelCsvNonDepartmentses =
null
;
userDepartments =
null
;
// context.Session.Add("TagExport", "Complete");
GC.Collect();
GC.WaitForPendingFinalizers();
}
}