コード例 #1
0
        public ActionResult BuildReport([ModelBinder(typeof(BaseReportFormModelBinder))] BaseReportForm form)
        {
            var reportStrategy = ReportsFactory.GetReportStrategy(form, _mapper);
            var reportLink     = reportStrategy.BuildReport();

            return(View("~/Views/TicketsAdmin/Reports/DownloadReport.cshtml", model: reportLink));
        }
コード例 #2
0
        public static IReportBuilder GetReportStrategy(BaseReportForm form, IMapper mapper)
        {
            switch (form.ReportType)
            {
            case ReportType.PotentialRealProfit:
            {
                var formModel = (PotentialRealProfitReportForm)form;
                var strategy  = new PotentialRealProfitReportStrategy(mapper)
                {
                    Parameters = formModel.GetParameters()
                };
                return(strategy);
            }

            case ReportType.UnprofitableMovies:
            {
                var formModel = (UnprofitableMoviesReportForm)form;
                var strategy  = new UnprofitableMoviesReportStrategy(mapper)
                {
                    Parameters = formModel.GetParameters()
                };
                return(strategy);
            }

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #3
0
        public ActionResult BuildReport([ModelBinder(typeof(BaseReportFormModelBinder))] BaseReportForm form)//modelbinder используется для получения нужной модели
        {
            var reportStrategy = ReportsFactory.GetReportStrategy(form, _mapper);
            var reportLink     = reportStrategy.BuildReport();

            return(View("~/Views/Tickets/Reports/DownloadReports.cshtml", model: reportLink));
        }