Beispiel #1
0
        private GraphDataViewModel ConvertFromPaths(List<IPath> paths)
        {
            GraphDataViewModel result = new GraphDataViewModel();
            GraphNodeViewModel sourceNode = null;
            List<GraphNodeViewModel> relatedNodes = new List<GraphNodeViewModel>();
            // Create the source node
            sourceNode = new GraphNodeViewModel
            {
                Id = paths[0].Start.Properties["id"].As<string>(),
                DataType = (NodeContentType)Enum.Parse(typeof(NodeContentType), paths[0].Start.Labels[0]),
                CommonName = paths[0].Start.Properties["commonName"].As<string>(),
            };

            foreach (IPath p in paths)
            {
                // Since I am only working with one other node in the path, I should be able to use the end node
                relatedNodes.Add(new GraphNodeViewModel
                {
                    Id = p.End.Properties["id"].As<string>(),
                    DataType = (NodeContentType)Enum.Parse(typeof(NodeContentType), p.End.Labels[0]),
                    CommonName = p.End.Properties["commonName"].As<string>(),
                    RelationType = p.Relationships[0].Type,
                    Roles = p.Relationships[0].Properties["roles"].As<List<string>>()
                });
            }

            result = new GraphDataViewModel { Source = sourceNode, RelatedNodes = relatedNodes };

            return result;
        }
        public string getChartData(int thingID)
        {
            Array data = (from t in db.SensorDatas
                          where t.ThingID == thingID
                          orderby t.Date
                          select t.Temperature).ToArray();
            Array labels = db.SensorDatas.OrderBy(d => d.Date).Select(d => d.Date)
                           .AsEnumerable().Select(date => date.Value.ToString("ddd - h:mm tt")).ToArray();
            GraphDataViewModel gd = new GraphDataViewModel
            {
                Data   = data,
                Labels = labels
            };
            var json = JsonConvert.SerializeObject(gd);

            return(json);
        }
Beispiel #3
0
        private GraphDataViewModel GetPaths(Guid? id, string searchText)
        {
            GraphDataViewModel result = null;
            // Get the paths from the database
            List<IPath> paths = new List<IPath>();
            using (NeoDriver driver = new NeoDriver())
            {
                if(id == null || id == Guid.Empty)
                {
                    paths = driver.GetPaths(searchText.ToLower());
                }
                else
                {
                    paths = driver.GetPaths(id.Value);
                }

                if(paths.Count == 0)
                {
                    BasicNodeModel model = id == null || id == Guid.Empty ? driver.GetNode(searchText) : driver.GetNode(id.Value);

                    if(model != null)
                    {
                        result.Source = new GraphNodeViewModel
                        {
                            Id = model.Id.ToString(),
                            CommonName = model.CommonName,
                            DataType = model.ContentType
                        };
                        result.RelatedNodes = new List<GraphNodeViewModel>();
                    }
                }
                else
                {
                    result = ConvertFromPaths(paths);
                }
            }

            return result;
        }
Beispiel #4
0
 public ActionResult NetworkData(Guid? id, string text)
 {
     GraphDataViewModel data = GetPaths(id, text);
     return Json(new { success = data != null, data = data }, JsonRequestBehavior.AllowGet);
 }
Beispiel #5
0
        public GraphDataViewModel GetServerData(int typeID, int dateRangeID)
        {
            var dateRange = db.Security_DateRanges.FirstOrDefault(x => x.Id == dateRangeID);
            var type      = db.Security_HardwareTypes.FirstOrDefault(x => x.Id == typeID);
            var results   = new GraphDataViewModel()
            {
                Labels = new List <string>(),
                Values = new List <double>()
            };
            var today = DateTime.Now;

            if (dateRange == null)
            {
                return(results);
            }

            if (dateRange.Name.Contains("Seconds"))
            {
                for (var i = 1; i <= 60; i++)
                {
                    results.Labels.Add(i.ToString());
                }
                results.Values.AddRange(db.Security_HardwarePerformances.Where(x => x.HardwareTypeId == type.Id).OrderByDescending(x => x.CreatedOn).Take(60).Select(x => Math.Round(x.PercentageValue, 2)).ToList());
            }
            else if (dateRange.Name.Contains("Minutes"))
            {
                for (var i = 0; i > -60; i--)
                {
                    var max     = today.AddMinutes(i);
                    var iMinus1 = i - 1;
                    var min     = today.AddMinutes(iMinus1);
                    results.Labels.Add(iMinus1.ToString().Replace("-", ""));
                    var thisMinutesData = db.Security_HardwarePerformances.Where(x =>
                                                                                 x.CreatedOn <= max && x.CreatedOn >= min && x.HardwareTypeId == type.Id
                                                                                 ).OrderByDescending(x => x.CreatedOn).Take(60).Select(x => Math.Round(x.PercentageValue, 2)).ToList();
                    if (thisMinutesData.Count > 0)
                    {
                        var thisMinutesAverage = thisMinutesData.Average();
                        results.Values.Add(Math.Round(thisMinutesAverage, 2));
                    }
                }
            }
            else if (dateRange.Name.Contains("Hours"))
            {
                for (var i = 24; i > 0; i--)
                {
                    var max = today.AddDays(-1).AddHours(i);
                    var min = today.AddDays(-1).AddHours(i - 1);
                    results.Labels.Add(max.ToString("HH:mm tt"));
                    var thisHoursData = db.Security_HardwarePerformances.Where(x =>
                                                                               x.CreatedOn <= max && x.CreatedOn >= min && x.HardwareTypeId == type.Id
                                                                               ).OrderByDescending(x => x.CreatedOn).Take(3600).Select(x => Math.Round(x.PercentageValue, 2)).ToList();
                    if (thisHoursData.Count > 0)
                    {
                        var thisHoursAverage = thisHoursData.Average();
                        results.Values.Add(Math.Round(thisHoursAverage, 2));
                    }
                }
            }
            else if (dateRange.Name.Contains("Days"))
            {
                if (dateRange.Name.Contains("7"))
                {
                    for (var i = 0; i > -7; i--)
                    {
                        var max = today.AddDays(i);
                        var min = today.AddDays(i - 1);
                        results.Labels.Add(max.ToString("dddd"));
                        var thisDaysData = db.Security_HardwarePerformances.Where(x =>
                                                                                  x.CreatedOn <= max && x.CreatedOn >= min && x.HardwareTypeId == type.Id
                                                                                  ).OrderByDescending(x => x.CreatedOn).Take(86400).Select(x => Math.Round(x.PercentageValue, 2)).ToList();
                        if (thisDaysData.Count > 0)
                        {
                            var thisDaysAverage = thisDaysData.Average();
                            results.Values.Add(Math.Round(thisDaysAverage, 2));
                        }
                    }
                }
                else if (dateRange.Name.Contains("30"))
                {
                    for (var i = 0; i > -30; i--)
                    {
                        var max = today.AddDays(i);
                        var min = today.AddDays(i - 1);
                        results.Labels.Add(max.ToString("MMMM dd"));
                        var thisDaysData = db.Security_HardwarePerformances.Where(x =>
                                                                                  x.CreatedOn <= max && x.CreatedOn >= min && x.HardwareTypeId == type.Id
                                                                                  ).OrderByDescending(x => x.CreatedOn).Take(86400).Select(x => Math.Round(x.PercentageValue, 2)).ToList();
                        if (thisDaysData.Count > 0)
                        {
                            var thisDaysAverage = thisDaysData.Average();
                            results.Values.Add(Math.Round(thisDaysAverage, 2));
                        }
                    }
                }
            }

            return(results);
        }