public async Task Post([FromBody] ReadingsEntry value) { value.TimesStamp = DateTime.Now; await _db.Readings.AddAsync(value); await _db.SaveChangesAsync(); Procedures procedure = new Procedures(_db, _config); await procedure.TriggerInsert(value); }
public async Task Put(int id, [FromBody] ReadingsEntry value) { try { var old = await _db.Readings.FindAsync(id); _db.Entry(old).CurrentValues.SetValues(value); await _db.SaveChangesAsync(); } catch (Exception e) { Console.WriteLine("error", e); } }
public async Task Post([FromBody] InputSensor values) { if (values.valueIn == 0 && values.valueOut != 0) { MonitorsEntry mon = await _db.Monitors.FindAsync(values.IdIn); MonitorsEntry old = await _db.Monitors.FindAsync(values.IdIn); mon.Status = "faulty"; mon.FaultCount = mon.FaultCount + 1; _db.Entry(old).CurrentValues.SetValues(mon); await _db.SaveChangesAsync(); var sensorHistory = await _db.SensorHistory .Where(h => h.SensorId == mon.Id) .OrderByDescending(h => h.FaultDate) .FirstOrDefaultAsync(); if (sensorHistory == null) { SensorHistoryEntry history = new SensorHistoryEntry(); history.SensorId = values.IdIn; history.SensorType = EnumSensorType.WATER_FLOW_SENSOR; history.SensorResolved = EnumResolveStatus.UNRESOLVED; history.FaultDate = DateTime.Now; history.EmailSentDate = DateTime.Now; history.AttendedDate = DateTime.MinValue; await _db.SensorHistory.AddAsync(history); } else { var updatedHistory = sensorHistory; updatedHistory.SensorResolved = EnumResolveStatus.UNRESOLVED; updatedHistory.EmailSentDate = DateTime.Now; _db.Entry(sensorHistory).CurrentValues.SetValues(updatedHistory); await _db.SaveChangesAsync(); } } else if (values.valueOut == 0 && values.valueIn != 0 || values.valueOut > values.valueIn) { MonitorsEntry mon = await _db.Monitors.FindAsync(values.IdOut); MonitorsEntry old = await _db.Monitors.FindAsync(values.IdOut); mon.Status = "faulty"; mon.FaultCount = mon.FaultCount + 1; _db.Entry(old).CurrentValues.SetValues(mon); await _db.SaveChangesAsync(); var sensorHistory = await _db.SensorHistory .Where(h => h.SensorId == mon.Id) .OrderByDescending(h => h.FaultDate) .FirstOrDefaultAsync(); if (sensorHistory == null) { SensorHistoryEntry history = new SensorHistoryEntry(); history.SensorId = values.IdOut; history.SensorType = EnumSensorType.WATER_FLOW_SENSOR; history.SensorResolved = EnumResolveStatus.UNRESOLVED; history.FaultDate = DateTime.Now; history.EmailSentDate = DateTime.Now; history.AttendedDate = DateTime.MinValue; await _db.SensorHistory.AddAsync(history); } else { var updatedHistory = sensorHistory; updatedHistory.SensorResolved = EnumResolveStatus.UNRESOLVED; updatedHistory.EmailSentDate = DateTime.Now; _db.Entry(sensorHistory).CurrentValues.SetValues(updatedHistory); await _db.SaveChangesAsync(); } } ReadingsEntry reading = new ReadingsEntry(); ReadingsEntry reading2 = new ReadingsEntry(); reading.TimesStamp = DateTime.Now; reading2.TimesStamp = DateTime.Now; reading.Value = (values.valueIn) * Globals.MinuteToHour; reading2.Value = (values.valueOut) * Globals.MinuteToHour; reading.MonitorsId = values.IdIn; reading2.MonitorsId = values.IdOut; await _db.Readings.AddAsync(reading); await _db.SaveChangesAsync(); await _db.Readings.AddAsync(reading2); await _db.SaveChangesAsync(); Procedures procedure = new Procedures(_db, _config); await procedure.TriggerInsert(reading); }