예제 #1
0
        internal static async Task <List <LoadDashboard> > GetAllWidgetAsync(TeamHttpContext httpContext)
        {
            string userid = httpContext.ContextUserId;
            List <LoadDashboard> returnValue      = new List <LoadDashboard>();
            PostgresService      postgresService  = new PostgresService();
            List <UserDashboard> objUserDashboard = new List <UserDashboard>();

            using (TeamDbContext dbContext = new TeamDbContext())
            {
                //objUserDashboard = dbContext.UserDashboards.Where(x => x.DashboardUserId == userid && x.Deleted == false).ToList(); //user specific
                //objUserDashboard = dbContext.UserDashboards.Where(x => x.Deleted == false).ToList(); // For all users
                objUserDashboard = dbContext.UserDashboards.Where(x => x.Deleted == false && x.DashboardUserPermission.Contains(httpContext.ContextUserId)).ToList(); // For permitted  users
            }

            if (objUserDashboard.Count != 0)
            {
                foreach (var item in objUserDashboard)
                {
                    List <WidgetRead> objWidgetRead = new List <WidgetRead>();
                    string            connString    = Utility.GetConnectionString(item.WidgetConnectionString);
                    using (NpgsqlDataReader sqlData = postgresService.ExecuteSqlReturnReader(connString, item.WidgetQuery))
                    {
                        while (sqlData.Read())
                        {
                            objWidgetRead.Add(new WidgetRead
                            {
                                Name  = sqlData.GetBlankStringIfNull("name"),
                                Count = sqlData.GetInt32("count")
                            });
                        }
                    }
                    LoadDashboard newItem = new LoadDashboard
                    {
                        DashboardWidgetName = item.DashboardWidgetName,
                        DashboardWidgetId   = item.Id,
                        DashboardWidgetType = item.DashboardChartType,
                        DashbaordWidgetData = objWidgetRead.ToArray()
                    };
                    returnValue.Add(newItem);
                }
            }

            return(returnValue);
        }
예제 #2
0
        internal static async Task <List <LoadWidgets> > GetWidgetAsync(TeamHttpContext httpContext, string widgettype, string widgetname)//, string widgetquery, string widgetquerylevel1, string widgetquerylevel2, string widgetquerylevel3, string widgetquerylevel4)
        {
            string               userid           = httpContext.ContextUserId;
            List <LoadWidgets>   returnValue      = new List <LoadWidgets>();
            PostgresService      postgresService  = new PostgresService();
            List <UserDashboard> objUserDashboard = new List <UserDashboard>();

            using (TeamDbContext dbContext = new TeamDbContext())
            {
                objUserDashboard = dbContext.UserDashboards.Where(x => x.CreatedBy == userid && x.DashboardChartType == widgettype && x.DashboardWidgetName == widgetname && x.Deleted == false).ToList();
            }

            if (objUserDashboard.Count != 0)
            {
                foreach (var item in objUserDashboard)
                {
                    List <WidgetRead> objWidgetRead = new List <WidgetRead>();
                    string            connString    = Utility.GetConnectionString(item.WidgetConnectionString);
                    using (NpgsqlDataReader sqlData = postgresService.ExecuteSqlReturnReader(connString, item.WidgetQuery))
                    {
                        while (sqlData.Read())
                        {
                            objWidgetRead.Add(new WidgetRead
                            {
                                Name  = sqlData.GetBlankStringIfNull("name"),
                                Count = sqlData.GetInt32("count")
                            });
                        }
                    }

                    LoadWidgets newItem = new LoadWidgets
                    {
                        DashboardWidgetName     = item.DashboardWidgetName,
                        WidgetId                = item.Id,
                        DashboardChartType      = item.DashboardChartType,
                        DashboardUserPermission = item.DashboardUserPermission,
                        DashboardEmailFormat    = item.DashboardEmailFormat,
                        WidgetData              = objWidgetRead.ToArray(),
                        WidgetConnectionString  = item.WidgetConnectionString,
                        WidgetSchedulerType     = item.WidgetSchedulerType,
                        WidgetSchedulerEmailIDs = item.WidgetSchedulerEmailIDs,
                        WidgetQuery             = item.WidgetQuery,
                        Level1ConnectionString  = item.Level1ConnectionString,
                        Level1SchedulerType     = item.Level1SchedulerType,
                        L1SchedulerEmailIDs     = item.L1SchedulerEmailIDs,
                        DashbaordQueryL1        = item.DashbaordQueryL1,
                        Level2ConnectionString  = item.Level2ConnectionString,
                        Level2SchedulerType     = item.Level2SchedulerType,
                        L2SchedulerEmailIDs     = item.L2SchedulerEmailIDs,
                        DashbaordQueryL2        = item.DashbaordQueryL2,
                        Level3ConnectionString  = item.Level3ConnectionString,
                        Level3SchedulerType     = item.Level3SchedulerType,
                        L3SchedulerEmailIDs     = item.L3SchedulerEmailIDs,
                        DashbaordQueryL3        = item.DashbaordQueryL3,
                        Level4ConnectionString  = item.Level4ConnectionString,
                        Level4SchedulerType     = item.Level4SchedulerType,
                        L4SchedulerEmailIDs     = item.L4SchedulerEmailIDs,
                        DashbaordQueryL4        = item.DashbaordQueryL4,
                        WidgetSendEmail         = item.WidgetSendEmail
                    };
                    returnValue.Add(newItem);
                }
            }
            return(returnValue);
        }