public async Task <IActionResult> GetT_sensor([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (User.Claims.Single(x => x.Type == ClaimTypes.Role).Value == "User") { User user = _context.Users.Find(Convert.ToInt32(User.FindFirstValue("Sub"))); List <T_sensor> t_Sensors = GetUserElements.GetUserT_sensors(user.Id, _context); if (t_Sensors == null || t_Sensors.Count == 0 || t_Sensors.Where(x => x.Id == id).ToList().Count == 0) { return(NotFound()); } } var t_sensor = await _context.T_sensors.FindAsync(id); if (t_sensor == null) { return(NotFound()); } return(Ok(t_sensor)); }
public async Task <IActionResult> PostT_sensor([FromBody] T_sensor t_sensor) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (User.Claims.Single(x => x.Type == ClaimTypes.Role).Value == "User") { if (Convert.ToInt32(User.FindFirstValue("Sub")) != _context.Enterprises.Find(_context.Rooms.Find(t_sensor.RoomId).EnterpriseId).UserId) { return(BadRequest("Stop hacking pls...")); } } if (GetUserElements.AddNewItem(Convert.ToInt32(User.FindFirstValue("Sub")), "Sensor", _context) == false) { return(BadRequest("Достигнуто максимально кол-во Sensors для вашего тарифа.")); } _context.T_sensors.Add(t_sensor); await _context.SaveChangesAsync(); return(CreatedAtAction("GetT_sensor", new { id = t_sensor.Id }, t_sensor)); }
public async Task <IActionResult> GetRoom([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (User.Claims.Single(x => x.Type == ClaimTypes.Role).Value == "User") { List <Room> rooms = GetUserElements.GetUserRooms(Convert.ToInt32(User.FindFirstValue("Sub")), _context); if (rooms == null || rooms.Count == 0 || rooms.Where(x => x.Id == id).ToList().Count == 0) { return(NotFound()); } } var room = await _context.Rooms.FindAsync(id); if (room == null) { return(NotFound()); } return(Ok(room)); }
public ActionResult <IEnumerable <T_sensor> > GetT_sensors([FromRoute] int id) { if (User.Claims.Single(x => x.Type == ClaimTypes.Role).Value == "User") { List <Room> rooms = GetUserElements.GetUserRooms(Convert.ToInt32(User.FindFirstValue("Sub")), _context); if (rooms == null || rooms.Count == 0 || rooms.Where(x => x.Id == id).ToList().Count == 0) { return(NotFound()); } } return(_context.T_sensors.Where(x => x.RoomId == id).ToList()); }
public async Task <IActionResult> DeleteRoom([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (User.Claims.Single(x => x.Type == ClaimTypes.Role).Value == "User") { List <Room> rooms = GetUserElements.GetUserRooms(Convert.ToInt32(User.FindFirstValue("Sub")), _context); if (rooms == null || rooms.Count == 0 || rooms.Where(x => x.Id == id).ToList().Count == 0) { return(NotFound()); } } List <T_sensor> t_Sensors = GetUserElements.GetUserT_sensorsFromRoom(id, _context); if (t_Sensors != null && t_Sensors.Count > 0) { foreach (var t_s in t_Sensors) { _context.T_sensors.Remove(t_s); _context.Entry(t_s).State = EntityState.Deleted; } await _context.SaveChangesAsync(); } List <H_sensor> h_Sensors = GetUserElements.GetUserH_sensorsFromRoom(id, _context); if (h_Sensors != null && h_Sensors.Count > 0) { foreach (var h_s in h_Sensors) { _context.H_sensors.Remove(h_s); _context.Entry(h_s).State = EntityState.Deleted; } await _context.SaveChangesAsync(); } var room = await _context.Rooms.FindAsync(id); if (room == null) { return(NotFound()); } _context.Rooms.Remove(room); await _context.SaveChangesAsync(); return(Ok(room)); }
public async Task <IActionResult> PutRoom([FromRoute] int id, [FromBody] Room room) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != room.Id) { return(BadRequest()); } if (User.Claims.Single(x => x.Type == ClaimTypes.Role).Value == "User") { List <Room> rooms = GetUserElements.GetUserRooms(Convert.ToInt32(User.FindFirstValue("Sub")), _context); if (rooms == null || rooms.Count == 0 || rooms.Where(x => x.Id == id).ToList().Count == 0) { return(NotFound()); } } _context.Entry(room).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RoomExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PutT_sensor([FromRoute] int id, [FromBody] T_sensor t_sensor) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != t_sensor.Id) { return(BadRequest()); } if (User.Claims.Single(x => x.Type == ClaimTypes.Role).Value == "User") { User user = _context.Users.Find(Convert.ToInt32(User.FindFirstValue("Sub"))); List <T_sensor> t_Sensors = GetUserElements.GetUserT_sensors(user.Id, _context); if (t_Sensors == null || t_Sensors.Count == 0 || t_Sensors.Where(x => x.Id == id).ToList().Count == 0) { return(NotFound()); } } //Alarm T_sensor sensor = _context.T_sensors.Find(t_sensor.Id); if (t_sensor.Value < sensor.Min_value) { _context.Rooms.Find(t_sensor.RoomId).Alarm = true; Enterprise enterprise = _context.Enterprises.Find(_context.Rooms.Find(t_sensor.RoomId).EnterpriseId); User user = _context.Users.Find(enterprise.UserId); SendMail.sendEmail(user.Mail, "ALARM"); } else if (t_sensor.Value > sensor.Max_value) { _context.Rooms.Find(t_sensor.RoomId).Alarm = true; Enterprise enterprise = _context.Enterprises.Find(_context.Rooms.Find(t_sensor.RoomId).EnterpriseId); User user = _context.Users.Find(enterprise.UserId); SendMail.sendEmail(user.Mail, "ALARM"); } _context.Entry(t_sensor).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!T_sensorExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }