public WorkbookAppViewController(
            WorkbookAppInstallation workbookApp,
            Context context,
            bool enabled)
        {
            if (workbookApp == null)
            {
                throw new ArgumentNullException(nameof(workbookApp));
            }

            AgentType = workbookApp.GetAgentType();

            Icon    = workbookApp.Icon ?? "project";
            Enabled = enabled;
            Label   = GetDisplayLabel(workbookApp, context);

            OptionalFeatures = workbookApp
                               .OptionalFeatures
                               .Where(id => NewWorkbookFeature.AllFeatures.ContainsKey(id))
                               .Select(id => NewWorkbookFeature.AllFeatures [id])
                               .ToArray();
        }