public async Task <IActionResult> CreateMonitoringTasks([FromBody] List <Models.MonitorConfig> monitors, string forUser = null) { if (monitors == null || forUser == null || !monitors.Any(m => m != null)) { return(new BadRequestResult()); } var obj = new Models.UserMonitorConfig() { uid = forUser, Data = monitors }; var result = await obj.ToMongoDB <Models.UserMonitorConfig>(); //update monitors ThreadPool.QueueUserWorkItem(async state => await Program.RefreshMonitoringForUserAsync(forUser, HttpContext.Request.QueryString.Value)); return(new OkObjectResult(result)); }
public async Task <IActionResult> DeleteConfigAsync(string id, string forUser = null) { var obj = new Models.UserMonitorConfig() { uid = forUser, _id = new Models.UserMonitorConfig.id { oid = id } }; //check if sensor id correspond to the authenticated user (forUser) var userResults = await Extensions.MongoDB.FromMongoDB <Models.UserMonitorConfig, Models.MonitorConfig>(forUser); if (userResults == null || !userResults.Any(t => t.Id == id)) { return(new ForbidResult()); } await obj.DeleteFromMongoDB <Models.UserMonitorConfig>(); ThreadPool.QueueUserWorkItem(async state => await Program.RefreshMonitoringForUserAsync(forUser, HttpContext.Request.QueryString.Value)); return(new OkResult()); }