public void DatasetManager_GetData_Measurements() { DatasetManager dm = new DatasetManager(connectionKey, "TESTSESSION"); List <DataPoint> series = dm.GetData("MeasurementLog", "Measure", null); Assert.IsTrue(series.Count > 0); }
public void DatasetManager_GetData_Measurements_DataScreens() { //the getfilters function gets distinct values from a table field that will //used to build the query to get the dataset. Controler only pulling from fireincidents for now. need to make it dynamic. List <DataScreen> filters = new List <DataScreen>(); DataScreen qf = new DataScreen(); qf.Field = "UnitOfMeasure"; qf.Operator = "="; qf.Value = "centimeters"; qf.Type = "sql"; //tell the parser is a sql query qf.Junction = "AND"; //since more filters are to follow add a conjunction. filters.Add(qf); qf = new DataScreen(); qf.Field = "Measure"; qf.Operator = "BETWEEN"; qf.Type = "sql"; //tell the parser is a sql query qf.Value = "20"; qf.Order = 0; //this is the first part of the between statement qf.Junction = "AND"; filters.Add(qf); qf = new DataScreen(); qf.Field = "Measure"; qf.Operator = "BETWEEN"; qf.Type = "sql"; //tell the parser is a sql query qf.Value = "50"; qf.Order = 1; //second part of the between statement filters.Add(qf); DatasetManager dm = new DatasetManager(connectionKey, "TESTSESSION"); List <DataPoint> series = dm.GetData("MeasurementLog", "Measure", null); Assert.IsTrue(series.Count > 0); }
public ServiceResult GetDataset(string category = "", string field = "") { List <DataPoint> dataSet; if (string.IsNullOrWhiteSpace(category)) { return(ServiceResponse.Error("You must provide a category to get the datasets.")); } if (string.IsNullOrWhiteSpace(field)) { return(ServiceResponse.Error("You must provide a series to get the datasets.")); } if (CurrentUser == null) { return(ServiceResponse.Error("You must be logged in to access this function.")); } if (category?.ToLower() == "users" && CurrentUser.SiteAdmin == false) //BACKLOG turn on the flag to log permission routes to log this. add numeric value to roles sow we can include multiple roles by doing math >= roleWeight { RoleManager roleManager = new RoleManager(Globals.DBConnectionKey, CurrentUser); if (!roleManager.IsUserInRole(CurrentUser.UUID, "Admin", CurrentUser.AccountUUID) || !roleManager.IsUserInRole(CurrentUser.UUID, "owner", CurrentUser.AccountUUID)) { return(ServiceResponse.Error("You are not authorized to query the category:" + category)); } } try { Task <string> content = ActionContext.Request.Content.ReadAsStringAsync(); if (content == null) { return(ServiceResponse.Error("No screens were sent.")); } string body = content.Result; if (string.IsNullOrEmpty(body)) { return(ServiceResponse.Error("No screens were sent.")); } List <DataScreen> screens = JsonConvert.DeserializeObject <List <DataScreen> >(body); DatasetManager dm = new DatasetManager(Globals.DBConnectionKey, Request.Headers?.Authorization?.Parameter); dataSet = dm.GetData(category, field, screens); return(ServiceResponse.OK("", dataSet)); } catch (Exception ex) { Debug.Assert(false, ex.Message); SystemLogger logger = new SystemLogger(Globals.DBConnectionKey); logger.InsertError(ex.Message, "ReportsController", "GetDataset"); return(ServiceResponse.Error("Error retrieving dataset.")); } }