public ActionResult ContactReport(ContactReportViewModel model)
        {
            var mgr   = new ReportManager();
            var items = mgr.FetchContactReport(model).AsQueryable();

            MemoryStream output = new MemoryStream();
            StreamWriter writer = new StreamWriter(output, Encoding.UTF8);

            writer.Write("ContactId,Region,Fund,OrgCode,BA,Name,Phone,Fax,Email");
            writer.WriteLine();

            writer.WriteLine();
            foreach (var item in items)
            {
                var format    = "{0},\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\",\"{8}\"";
                var formatted = string.Format(format, item.ContactId, item.Region, item.Fund, item.OrgCode, item.BA, item.Name, item.Phone, item.Fax, item.Email);
                writer.Write(formatted);
                writer.WriteLine();
            }

            writer.Flush();
            output.Position = 0;

            return(File(output, "text/comma-separated-values", "ContactReport.csv"));
        }
        public ActionResult ContactReport()
        {
            if (Session[SessionKey.RoleModel] == null)
            {
                // No role model created yet. Redirect to the login page.
                return(RedirectToAction("Index", "Login"));
            }

            var mgr   = new ReportManager();
            var model = new ContactReportViewModel();

            return(View(model));
        }
        public ActionResult ContactReportRecords([DataSourceRequest] DataSourceRequest request, ContactReportViewModel search)
        {
            var mgr    = new ReportManager();
            var items  = mgr.FetchContactReport(search).AsQueryable();
            var result = items.ToDataSourceResult(request);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }