Exemplo n.º 1
0
        public JsonResult GetDatabaseTables()
        {
            List <SelectListItem> result = new List <SelectListItem>();

            using (var dbContext = new DashBoardDBEntities())
            {
                var dataSource    = dbContext.DataSources.Where(t => t.DataSourceType == "Database").FirstOrDefault();
                var databaseParam = JsonConvert.DeserializeObject <DatabaseParam>(dataSource.InputParams);
                using (var connection = new SqlConnection(databaseParam.ConnectionString))
                {
                    connection.Open();
                    IDbCommand  cmd = new SqlCommand("SELECT Name FROM sys.tables Order by Name", connection);
                    IDataReader dr  = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        result.Add(
                            new SelectListItem
                        {
                            Text  = Convert.ToString(dr["Name"]),
                            Value = Convert.ToString(dr["Name"])
                        }
                            );
                    }
                    dr.Dispose();
                    connection.Close();
                }
            }
            return(Json(new { Data = result }));
        }
Exemplo n.º 2
0
        //Get data from table to render dashboard
        public JsonResult GetDatabaseData(string tableName)
        {
            DataTable dt = new DataTable();
            List <Dictionary <string, string> > rows = new List <Dictionary <string, string> >();

            using (var dbContext = new DashBoardDBEntities())
            {
                var dataSource    = dbContext.DataSources.Where(t => t.DataSourceType == "Database").FirstOrDefault();
                var databaseParam = JsonConvert.DeserializeObject <DatabaseParam>(dataSource.InputParams);
                using (var connection = new SqlConnection(databaseParam.ConnectionString))
                {
                    connection.Open();
                    SqlCommand     cmd = new SqlCommand(String.Format("SELECT * FROM {0}", tableName), connection);
                    SqlDataAdapter da  = new SqlDataAdapter(cmd);
                    da.Fill(dt);

                    Dictionary <string, string> row;
                    foreach (DataRow dr in dt.Rows)
                    {
                        row = new Dictionary <string, string>();
                        foreach (DataColumn col in dt.Columns)
                        {
                            row.Add(col.ColumnName, Convert.ToString(dr[col]));
                        }
                        rows.Add(row);
                    }
                    connection.Close();
                }
            }
            return(Json(rows, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        public List <Widget> GetNotifications(string currentUser)
        {
            List <Widget> widgets = new List <Widget>();

            using (DashBoardDBEntities dbContext = new DashBoardDBEntities())
            {
                widgets = (from w in dbContext.Widgets
                           join u in dbContext.WidgetUserMaps
                           on w.WidgetID equals u.WidgetID
                           where u.UserName == currentUser && u.IsRead != true
                           select w).ToList();
            }
            return(widgets);
        }
Exemplo n.º 4
0
 //Retain position of widget
 public JsonResult RepositionWidget(int WidgetID, int Column, int Row)
 {
     using (var dbContext = new DashBoardDBEntities())
     {
         var widget = dbContext.Widgets.Where(t => t.WidgetID == WidgetID).FirstOrDefault();
         if (widget != null)
         {
             widget.Column = Column;
             widget.Row    = Row;
         }
         dbContext.SaveChanges();
     }
     return(Json(new { Data = "Updated" }));
 }
Exemplo n.º 5
0
 public JsonResult UpdateNotifications()
 {
     using (var dbContext = new DashBoardDBEntities())
     {
         var widgets = dbContext.WidgetUserMaps.Where(t => t.UserName == User.Identity.Name).ToList();
         foreach (WidgetUserMap widget in widgets)
         {
             widget.IsRead = true;
         }
         dbContext.SaveChanges();
     }
     //return Json("");
     return(Json("", JsonRequestBehavior.AllowGet));
 }
Exemplo n.º 6
0
        //Retaining size of widget

        public JsonResult ResizeWidget(int WidgetID, int Width, int Height)
        {
            using (var dbContext = new DashBoardDBEntities())
            {
                var widget = dbContext.Widgets.Where(t => t.WidgetID == WidgetID).FirstOrDefault();
                if (widget != null)
                {
                    widget.Height = Height;
                    widget.Width  = Width;
                }
                dbContext.SaveChanges();
            }
            return(Json(new { Data = "Updated" }));
        }
Exemplo n.º 7
0
        public JsonResult ChartSeries(int WidgetID)
        {
            DashBoard.Models.Widget result;
            ApiChart barChart = new ApiChart();

            using (var dbContext = new DashBoardDBEntities())
            {
                result = dbContext.Widgets.Where(t => t.WidgetID == WidgetID).FirstOrDefault();
                if (result != null)
                {
                    barChart = JsonConvert.DeserializeObject <ApiChart>(result.WidgetTypeInputParamValues);
                }
            }
            return(Json(new { Data = barChart.series }));
        }
Exemplo n.º 8
0
        public JsonResult WidgetTypes()
        {
            List <SelectListItem> result = new List <SelectListItem>();

            using (var dbContext = new DashBoardDBEntities())
            {
                result = (from d in dbContext.WidgetTypes
                          select new SelectListItem
                {
                    Text = d.WidgetName,
                    Value = d.WidgetTypeID.ToString()
                }).ToList();
            }
            return(Json(new { Data = result }));
        }
Exemplo n.º 9
0
        public JsonResult DeleteWidget(int WidgetID)
        {
            using (var dbContext = new DashBoardDBEntities())
            {
                var widget = dbContext.Widgets.Where(t => t.WidgetID == WidgetID).FirstOrDefault();
                dbContext.Widgets.Remove(widget);

                //remove existing mapping
                var currentMaps = dbContext.WidgetUserMaps.Where(c => c.WidgetID == WidgetID);
                if (currentMaps != null)
                {
                    dbContext.WidgetUserMaps.RemoveRange(currentMaps);
                }

                dbContext.SaveChanges();
            }
            return(Json(new { Data = "Updated" }));
        }
Exemplo n.º 10
0
        //get widget details based on widgetID
        public JsonResult WidgetDetails(int WidgetID)
        {
            DashBoard.Models.Widget result;
            ApiChart   barChart   = new ApiChart();
            DonutChart donutChart = new DonutChart();

            using (var dbContext = new DashBoardDBEntities())
            {
                result = dbContext.Widgets.Include(r => r.DataSource).Where(t => t.WidgetID == WidgetID).FirstOrDefault();
                if (result != null)
                {
                    if (result.WidgetTypeID != 4)
                    {
                        barChart = JsonConvert.DeserializeObject <ApiChart>(result.WidgetTypeInputParamValues);
                        var data = new WidgetModel()
                        {
                            DataSourceName = result.DataSource.DataSourceType,
                            ApiChart       = barChart,
                            WidgetTypeID   = result.WidgetTypeID,
                            WidgetID       = WidgetID
                        };
                        return(Json(new { Data = data }));
                    }
                    else
                    {
                        donutChart = JsonConvert.DeserializeObject <DonutChart>(result.WidgetTypeInputParamValues);
                        var data = new WidgetModel()
                        {
                            DataSourceName = result.DataSource.DataSourceType,
                            DonutChart     = donutChart,
                            WidgetTypeID   = result.WidgetTypeID,
                            WidgetID       = WidgetID
                        };
                        return(Json(new { Data = data }));
                    }
                }
            }
            return(Json(new { Data = "Data not found" }));
        }
Exemplo n.º 11
0
        public ActionResult Index()
        {
            string currentUser = User.Identity.Name;
            var    model       = new DashboardModel();

            using (var dbContext = new DashBoardDBEntities())
            {
                //Get widgets available/assigned to users for renderingr in main screen

                var widgets = (from w in dbContext.Widgets
                               join u in dbContext.WidgetUserMaps
                               on w.WidgetID equals u.WidgetID
                               where u.UserName == currentUser
                               select w).ToList();

                foreach (Widget item in widgets)
                {
                    model.Widgets.Add(
                        new WidgetModel()
                    {
                        WidgetID         = item.WidgetID,
                        WidgetName       = item.WidgetName,
                        WidgetSchema     = item.WidgetTypeInputParamValues,
                        WidgetRenderType = "kendoChart",
                        Height           = item.Height,
                        Width            = item.Width,
                        Row    = item.Row,
                        Column = item.Column
                    }
                        );
                }
            }

            var applicationContext = new ApplicationDbContext();

            model.AllUsers = applicationContext.Users.ToList();

            return(View(model));
        }
Exemplo n.º 12
0
        //share widget to selected users
        public ActionResult SaveWidgetShare(string[] sharedUsers, string widgetID)
        {
            using (var dbContext = new DashBoardDBEntities())
            {
                foreach (string user in sharedUsers)
                {
                    //dbContext.WidgetUserMaps.Remove
                    var currentMap = dbContext.WidgetUserMaps.Where(c => c.UserName == user && c.WidgetID.ToString() == widgetID && c.IsOwner != true).FirstOrDefault();
                    if (currentMap != null)
                    {
                        dbContext.WidgetUserMaps.Remove(currentMap);
                    }

                    WidgetUserMap userMap = new WidgetUserMap();
                    userMap.UserName = user;
                    userMap.WidgetID = Convert.ToInt32(widgetID);
                    dbContext.WidgetUserMaps.Add(userMap);
                }

                dbContext.SaveChanges();
            }
            return(Json(""));
        }
Exemplo n.º 13
0
        //Save widget details passed from main screen
        public ActionResult SaveApiWidget(WidgetModel model)
        {
            bool flgNewWidget = false;

            using (var dbContext = new DashBoardDBEntities())
            {
                var        widget     = dbContext.Widgets.Where(t => t.WidgetID == model.WidgetID).FirstOrDefault();
                var        widgetType = dbContext.WidgetTypes.Where(t => t.WidgetTypeID == model.WidgetTypeID).FirstOrDefault();
                DataSource dataSource = dbContext.DataSources.Where(t => t.DataSourceType == model.DataSourceName).FirstOrDefault();
                if (model.ApiChart != null)
                {
                    if (widget == null)
                    {
                        widget = CreateWidgetObject(model.ApiChart.title.text);
                        dbContext.Entry(widget).State = EntityState.Added;
                        flgNewWidget = true;
                    }

                    dbContext.DataSources.Attach(dataSource);
                    widget.DataSource = dataSource;

                    widget.WidgetType   = widgetType;
                    widget.WidgetTypeID = widgetType.WidgetTypeID;
                    widget.WidgetTypeInputParamValues = JsonConvert.SerializeObject(model.ApiChart);
                    WidgetSchemaMapper widgetSchemaMapper = new WidgetSchemaMapper(widget);
                    string             widgetSchema       = widgetSchemaMapper.GetSchema();
                    widget.WidgetTypeInputParamValues = widgetSchema;
                    dbContext.SaveChanges();
                }
                if (model.DonutChart != null && widgetType.WidgetTypeID == 4)
                {
                    if (widget == null)
                    {
                        widget = CreateWidgetObject(model.DonutChart.title.text);
                        dbContext.Entry(widget).State = EntityState.Added;
                        flgNewWidget = true;
                    }

                    dbContext.DataSources.Attach(dataSource);
                    widget.DataSource = dataSource;


                    widget.WidgetType   = widgetType;
                    widget.WidgetTypeID = widgetType.WidgetTypeID;
                    widget.WidgetTypeInputParamValues = JsonConvert.SerializeObject(model.DonutChart);
                    WidgetSchemaMapper widgetSchemaMapper = new WidgetSchemaMapper(widget);
                    string             widgetSchema       = widgetSchemaMapper.GetSchema();
                    widget.WidgetTypeInputParamValues = widgetSchema;
                    dbContext.SaveChanges();
                }
                //user mapping for new widget
                if (flgNewWidget)
                {
                    WidgetUserMap userMap = new WidgetUserMap();
                    userMap.UserName = User.Identity.Name;
                    userMap.WidgetID = Convert.ToInt32(widget.WidgetID);
                    userMap.IsOwner  = true;
                    userMap.IsRead   = true;
                    dbContext.WidgetUserMaps.Add(userMap);
                    dbContext.SaveChanges();
                }
            }
            return(Json(new { Data = "Successfully saved" }));
        }