예제 #1
0
        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()));
            }
        }
예제 #2
0
        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));
        }