public ActionResult Index()
        {
            DeficiencyFilesModel m = new DeficiencyFilesModel();

            //m.ReportType = 0;
            //m.StartDate = DateTime.Now.ToString("dd/MM/yyyy");
            //m.EndDate = DateTime.Now.ToString("dd/MM/yyyy");
            m.Floors = "0";
            m.Group  = "D";
            return(View(m));
        }
        public ActionResult Index(DeficiencyFilesModel param)
        {
            ReportViewer reportViewer = new ReportViewer();

            reportViewer.ProcessingMode = ProcessingMode.Local;
            var deficiencyModel = new System.Data.DataTable();

            if (param.ReportType == 0)
            {
                deficiencyModel = _clPatientStatisticsDB.Deficiency(param.StartDate, param.EndDate, param.Group, param.Floors == "0" ? "A" : param.Floors, param.IncludeStandards);  //_clReportDAL.GetReportProcedureDoneListDAL(DateFrom, DateTo);

                reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"\Areas\ManagementReports\Reports\PatientStatistics\Deficiency.rdl";
                reportViewer.LocalReport.SetParameters(new ReportParameter("StartDate", param.StartDate));
                reportViewer.LocalReport.SetParameters(new ReportParameter("EndDate", param.EndDate));
                reportViewer.LocalReport.SetParameters(new ReportParameter("Group", param.Group));
                reportViewer.LocalReport.SetParameters(new ReportParameter("Floors", param.Floors == "0" ? "A" : param.Floors));
                reportViewer.LocalReport.SetParameters(new ReportParameter("IncludeNew", param.IncludeStandards));
                //reportViewer.LocalReport.SetParameters(new ReportParameter("Label", string.Empty));
            }
            else
            {
                if (param.GraphType == 0)
                {
                    deficiencyModel = _clPatientStatisticsDB.DeficiencyDepartment(param.StartDate, param.EndDate, param.Group, param.Floors == "0" ? "A" : param.Floors, param.IncludeStandards); //_clReportDAL.GetReportProcedureDoneListDAL(DateFrom, DateTo);

                    reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"\Areas\ManagementReports\Reports\PatientStatistics\DeficiencyDepartment.rdl";
                    reportViewer.LocalReport.SetParameters(new ReportParameter("StartDate", param.StartDate));
                    reportViewer.LocalReport.SetParameters(new ReportParameter("EndDate", param.EndDate));
                    reportViewer.LocalReport.SetParameters(new ReportParameter("Group", param.Group));
                    reportViewer.LocalReport.SetParameters(new ReportParameter("Floors", param.Floors == "0" ? "A" : param.Floors));
                    reportViewer.LocalReport.SetParameters(new ReportParameter("IncludeNew", param.IncludeStandards));
                    //reportViewer.LocalReport.SetParameters(new ReportParameter("Label", String.Empty));
                }
                else if (param.GraphType == 2)
                {
                    var startdate  = DateTime.Parse(param.StartDate);
                    var enddate    = DateTime.Parse(param.EndDate);
                    var monthcount = Math.Abs((startdate.Month - enddate.Month) + 12 * (startdate.Year - enddate.Year)) + 1;

                    if (param.IncludeStandards == "N")
                    {
                        deficiencyModel = _clPatientStatisticsDB.DeficiencyMonthGraph(param.StartDate, param.EndDate, monthcount.ToString(), param.Group); //_clReportDAL.GetReportProcedureDoneListDAL(DateFrom, DateTo);

                        reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"\Areas\ManagementReports\Reports\PatientStatistics\DeficiencyDepartmentPercentMonthly.rdl";
                        reportViewer.LocalReport.SetParameters(new ReportParameter("StartDate", param.StartDate));
                        reportViewer.LocalReport.SetParameters(new ReportParameter("EndDate", param.EndDate));
                        reportViewer.LocalReport.SetParameters(new ReportParameter("Group", param.Group));
                        //reportViewer.LocalReport.SetParameters(new ReportParameter("Label", String.Empty));
                    }
                    else
                    {
                        deficiencyModel = _clPatientStatisticsDB.DeficiencyMonthGraphWithNew(param.StartDate, param.EndDate, monthcount.ToString(), param.Group); //_clReportDAL.GetReportProcedureDoneListDAL(DateFrom, DateTo);

                        reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"\Areas\ManagementReports\Reports\PatientStatistics\DeficiencyDepartmentPercentMonthly.rdl";
                        reportViewer.LocalReport.SetParameters(new ReportParameter("StartDate", param.StartDate));
                        reportViewer.LocalReport.SetParameters(new ReportParameter("EndDate", param.EndDate));
                        reportViewer.LocalReport.SetParameters(new ReportParameter("Group", param.Group));
                        //reportViewer.LocalReport.SetParameters(new ReportParameter("Label", String.Empty));
                    }
                }
                else
                {
                    if (param.IncludeStandards == "N")
                    {
                        deficiencyModel = _clPatientStatisticsDB.DeficiencyDepartmentGraph(param.StartDate, param.EndDate, param.Group); //_clReportDAL.GetReportProcedureDoneListDAL(DateFrom, DateTo);

                        reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"\Areas\ManagementReports\Reports\PatientStatistics\DeficiencyDepartmentPercent.rdl";
                        reportViewer.LocalReport.SetParameters(new ReportParameter("StartDate", param.StartDate));
                        reportViewer.LocalReport.SetParameters(new ReportParameter("EndDate", param.EndDate));
                        reportViewer.LocalReport.SetParameters(new ReportParameter("Group", param.Group));
                        //reportViewer.LocalReport.SetParameters(new ReportParameter("Label", String.Empty));
                    }
                    else
                    {
                        deficiencyModel = _clPatientStatisticsDB.DeficiencyDepartmentGraphWithNew(param.StartDate, param.EndDate, param.Group); //_clReportDAL.GetReportProcedureDoneListDAL(DateFrom, DateTo);

                        reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"\Areas\ManagementReports\Reports\PatientStatistics\DeficiencyDepartmentPercent.rdl";
                        reportViewer.LocalReport.SetParameters(new ReportParameter("StartDate", param.StartDate));
                        reportViewer.LocalReport.SetParameters(new ReportParameter("EndDate", param.EndDate));
                        reportViewer.LocalReport.SetParameters(new ReportParameter("Group", param.Group));
                        //reportViewer.LocalReport.SetParameters(new ReportParameter("Label", String.Empty));
                    }
                }
            }

            reportViewer.LocalReport.DataSources.Add(new ReportDataSource("dsDeficiency", deficiencyModel));
            reportViewer.LocalReport.DisplayName = base.SaveFilestreamtoPDF(reportViewer);
            ViewBag.ReportViewer = reportViewer;

            return(View(param));
        }