protected virtual TReportParameter PrepareViewBagForIndex()
        {
            var closedErfassungsperiodenDropDownItems = reportControllerService.GetClosedErfassungsperiodenDropDownItems <TReportParameter, TPresentationObject>().ToArray();

            ViewBag.SupportedYears          = reportControllerService.GetSupportedErfassungsperioden <TReportParameter>().Select(e => e.Id);
            ViewBag.ClosedErfassungsperiods = closedErfassungsperiodenDropDownItems;

            DropDownListItem erfassungsPeriodDropDownItem = closedErfassungsperiodenDropDownItems.SingleOrDefault(ep => ep.Selected);
            Guid?            erfassungsPeriodId           = erfassungsPeriodDropDownItem == null
                                           ? (Guid?)null
                                           : new Guid(erfassungsPeriodDropDownItem.Value);

            var parameter = new TReportParameter {
                ErfassungsPeriodId = erfassungsPeriodId
            };

            ViewBag.NetzErfassungsmodus = reportControllerService.GetNetzErfassungsmodus(parameter.ErfassungsPeriodId);
            return(parameter);
        }
        public virtual ActionResult Index()
        {
            var closedErfassungsperiodenDropDownItems = reportControllerService.GetClosedErfassungsperiodenDropDownItems <TReportParameter, TPresentationObject>();

            ViewBag.ClosedErfassungsperiods = closedErfassungsperiodenDropDownItems;

            DropDownListItem erfassungsPeriodDropDownItem = closedErfassungsperiodenDropDownItems.SingleOrDefault(ep => ep.Selected);
            Guid?            erfassungsPeriodId           = erfassungsPeriodDropDownItem == null ? (Guid?)null : new Guid(erfassungsPeriodDropDownItem.Value);

            if (!erfassungsPeriodId.HasValue)
            {
                ViewBag.NetzErfassungsmodus = erfassungsPeriodService.GetCurrentErfassungsPeriod().NetzErfassungsmodus;
            }
            else
            {
                var erfassungsPeriod = erfassungsPeriodService.GetEntityById(erfassungsPeriodId.Value);
                ViewBag.NetzErfassungsmodus = erfassungsPeriod.NetzErfassungsmodus;
            }

            PrepareViewBagForIndex(erfassungsPeriodId);
            return(View());
        }