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); }
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; }
public ActionResult NetworkData(Guid? id, string text) { GraphDataViewModel data = GetPaths(id, text); return Json(new { success = data != null, data = data }, JsonRequestBehavior.AllowGet); }
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); }