public async Task <IActionResult> SaveEvent([FromRoute] string id, [FromBody] RecyclingProcess data) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } using (DbWaterRecyclingContext db = new DbWaterRecyclingContext()) { var device = db.Devices.Where(i => i.Code == id).FirstOrDefault(); data.From = device ?? throw new ArgumentNullException("id", "Dispositivo no identificado"); data.CaptureDate = DateTime.Now; data.Process = !string.IsNullOrEmpty(data.Process) ? data.Process : GetnewProcess(device); var result = await db.AddAsync(data); await db.SaveChangesAsync(); return(Ok(data.Process)); } } catch (System.Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex)); } }
public IActionResult SimulateEvent([FromRoute] string id, [FromBody] RecyclingProcess data) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } using (DbWaterRecyclingContext db = new DbWaterRecyclingContext()) { var device = db.Devices.Where(i => i.Code == id).FirstOrDefault(); var from = device ?? throw new ArgumentNullException("id", "Dispositivo no identificado"); var process = !string.IsNullOrEmpty(data.Process) ? data.Process : GetnewProcess(device); for (int i = 0; i < data.Distance; i++) { int milliseconds = 2000; Thread.Sleep(milliseconds); data.Distance = data.Distance - 1; if (data.Distance <= 2) { break; } db.Add(new RecyclingProcess { From = from, CaptureDate = DateTime.Now, Process = process, Distance = data.Distance, Turbidity = data.Turbidity, }); db.SaveChanges(); } return(Ok(process)); } } catch (System.Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex)); } }
private static void SaveEvent(RecyclingProcess data, Device from, string process) { using (DbWaterRecyclingContext db = new DbWaterRecyclingContext()) { } }