public List <WidgetOutput> GetAllWidgetDefinitions(GetDashboardInput input)
        {
            var dashboardDefinition = _dashboardConfiguration.DashboardDefinitions.FirstOrDefault(d => d.Name == input.DashboardName);

            if (dashboardDefinition == null)
            {
                throw new UserFriendlyException(L("UnknownDashboard", input.DashboardName));
            }

            return(GetFilteredWidgets(dashboardDefinition)
                   .Select(widget => new WidgetOutput(widget.Id, widget.Name, widget.Description)).ToList());
        }
        public DashboardOutput GetDashboardDefinition(GetDashboardInput input)
        {
            var dashboardDefinition = _dashboardConfiguration.DashboardDefinitions.FirstOrDefault(d => d.Name == input.DashboardName);

            if (dashboardDefinition == null)
            {
                throw new UserFriendlyException(L("UnknownDashboard", input.DashboardName));
            }

            //widgets which used in that dashboard
            var usedWidgetDefinitions = GetFilteredWidgets(dashboardDefinition);

            return(new DashboardOutput(
                       dashboardDefinition.Name,
                       usedWidgetDefinitions
                       .Select(widget => new WidgetOutput(
                                   widget.Id,
                                   widget.Name,
                                   widget.Description,
                                   filters: GetNeededWidgetFiltersOutput(widget))
                               ).ToList()
                       ));
        }
 public async Task <Dashboard> GetUserDashboard(GetDashboardInput input)
 {
     return(GetDashboard(await GetDashboardFromSettings(input.Application), input.DashboardName));
 }