Example #1
0
        public ActionResult GetResult(FormCollection form)
        {
            try
            { 
                var model = new ReportResultFactory().CreateReportResultModel(form);

                if (model.DataTable.Rows.Count == 0)
                    return View("Result/EmptyView");

                return View("Result/View", model);
            }
            catch (Exception ex)
            {
                return View("ErrorMessage", new ErrorMessageModel()
                {
                    Title = "Unhandled exception occurred while generating report.",
                    Exception = ex
                });
            }
        }
Example #2
0
        public ActionResult GetExcel(FormCollection form)
        {
            try
            {
                var dataTable = new ReportResultFactory().CreateReportResultModel(form);
                var fileName = string.Format("Report_{0}.xls", Guid.NewGuid().ToString());
                GridView gv = new GridView();
                gv.DataSource = dataTable.DataTable;
                gv.DataBind();
                Response.ClearContent();
                Response.Buffer = true;
                Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
                Response.ContentType = "application/ms-excel";
                Response.Charset = "";
                StringWriter sw = new StringWriter();
                HtmlTextWriter htw = new HtmlTextWriter(sw);
                gv.RenderControl(htw);
                Response.Output.Write(sw.ToString());
                Response.Flush();
                Response.End();
                return File(Encoding.UTF8.GetBytes(sw.ToString()), "application/ms-excel", fileName);
            }
            catch (Exception ex)
            {
                var locationID = form["locationID"];
                var headerID = int.Parse(form["headerID"]);

                return RedirectToAction("ExportError", new { locationID = locationID, headerID = headerID });
            }
        }