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)); }
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(); } }
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)); }