private JObject GetDashboardItemJSON(string dashboardName, JObject config, int timeZoneOffset)
        {
            string             widgetType = config.Value <string>("widgetType");
            IDashboardItemData instance   = GetDashboardItemDataInstance(widgetType, dashboardName, config, timeZoneOffset);

            return(instance.GetJson());
        }
        private JObject GetDashboardItemJSONForSection(string dashboardName, JObject config, string bindingColumnValue, int timeZoneOffset)
        {
            string             widgetType = config.Value <string>("widgetType");
            var                factory    = new DashboardItemDataFactory(_userConnection);
            IDashboardItemData instance   = factory.CreateInstance(widgetType, dashboardName, config, bindingColumnValue, timeZoneOffset);

            return(instance.GetJson());
        }
        private IDashboardItemData GetDashboardItemDataInstance(string widgetType, string dashboardName, JObject config, int timeZoneOffset)
        {
            var factory = new DashboardItemDataFactory(_userConnection);
            IDashboardItemData instance = factory.CreateInstance(widgetType, dashboardName, config, timeZoneOffset);

            if (instance == null)
            {
                instance = factory.CreateConcreteInstance(typeof(BaseDashboardItemData), dashboardName, config, timeZoneOffset);
            }
            return(instance);
        }