public async Task <IActionResult> GetToiletSettings([FromQuery] string sensorId, [FromQuery] string name) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var settings = _context.ToiletsSettings .Where(s => s.Toilet.SensorId == HttpUtility.UrlDecode(sensorId)) .Select(s => new { s.ToiletId, s.UpdateFrequency, s.FanMode, s.FanThreshold }).FirstOrDefault(); if (settings != null) { return(Ok(settings)); } { var toilet = new Toilet { ToiletOwner = "[REDACTED]", ToiletName = name, SensorId = sensorId }; _context.Toilets.Add(toilet); _context.SaveChanges(); var toiletSettings = new ToiletSettings { ToiletId = toilet.ToiletId }; _context.ToiletsSettings.Add(toiletSettings); await _context.SaveChangesAsync(); var result = new List <ToiletSettings> { toiletSettings }; return(Ok(result.Select(s => new { s.ToiletId, s.UpdateFrequency, s.FanMode, s.FanThreshold }).ToList())); } }
public async Task <IActionResult> PostToiletSettings([FromBody] int toiletId) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var toiletSettings = new ToiletSettings { ToiletId = toiletId }; _context.ToiletsSettings.Add(toiletSettings); await _context.SaveChangesAsync(); return(CreatedAtAction("ToiletSettings", new { id = toiletSettings.ToiletId }, toiletSettings)); }