public IActionResult FinalizaCorrida(long id) { try { if (id <= 0) { return(StatusCode(400, new ErrorClass(400, "Codigo Invalido", DateTime.Now))); } var item = (Carrinho.FindById(id)); if (item == null) { return(StatusCode(404, new ErrorClass(404, "Sensor não encontrado", DateTime.Now))); } item.FinalizarCorrida(); return(StatusCode(200, _converter.Parser(Carrinho.FindById(id)))); } catch (MercurioCoreException ex) { return(StatusCode(400, new ErrorClass(400, ex.Message, DateTime.Now))); } catch (DBConnectionException ex) { return(StatusCode(500, new ErrorClass(500, ex.Message, DateTime.Now))); } }
public IActionResult DeleteItem(long id) { try { if (id <= 0) { return(StatusCode(400, new ErrorClass(400, "Codigo Invalido", DateTime.Now))); } var item = (Carrinho.FindById(id)); if (item == null) { return(StatusCode(404, new ErrorClass(404, "Item não encontrado", DateTime.Now))); } item.DeleteCarrinho(); return(NoContent()); } catch (MercurioCoreException ex) { return(StatusCode(400, new ErrorClass(400, ex.Message, DateTime.Now))); } catch (DBConnectionException ex) { return(StatusCode(500, new ErrorClass(500, ex.Message, DateTime.Now))); } }
public IActionResult AtualizarCarrinho([FromBody] CarrinhoV carrinhoV, long id) { try { PedidoConverter pedidoConverter = new PedidoConverter(); SensorConverter sensorConverter = new SensorConverter(); if (id <= 0) { return(StatusCode(400, new ErrorClass(400, "Codigo Invalido", DateTime.Now))); } var item = (Carrinho.FindById(id)); if (item == null) { return(StatusCode(404, new ErrorClass(404, "Sensor não encontrado", DateTime.Now))); } if (!string.IsNullOrWhiteSpace(carrinhoV.Nome)) { item.ChangeName(carrinhoV.Nome); } if (carrinhoV.IdPedido != 0) { item.ChangePedido(Pedido.FindById(carrinhoV.IdPedido)); } if (carrinhoV.IdUltimoSensor != 0) { item.ChangeUltimoSensor(Sensor.FindById(carrinhoV.IdUltimoSensor)); } item.UpdateCarrinho(); return(StatusCode(200, _converter.Parser(item))); } catch (MercurioCoreException ex) { return(StatusCode(400, new ErrorClass(400, ex.Message, DateTime.Now))); } catch (DBConnectionException ex) { return(StatusCode(500, new ErrorClass(500, ex.Message, DateTime.Now))); } }
public IActionResult GetNextSensor([FromBody] UltimoSensor ultimoSensor, long idCarrinho) { try { Carrinho c = Carrinho.FindById(idCarrinho); if (c.Pedido == null) { return(StatusCode(400, new ErrorClass(400, "Carrinho não está em rota no momento", DateTime.Now))); } Rota rota = c.Pedido.Rota; Sensor sensor = null; if (string.IsNullOrWhiteSpace(ultimoSensor.SensorAtual)) { sensor = Sensor.FindById(1); } else { sensor = Sensor.FindByHash(ultimoSensor.SensorAtual); } if (sensor == null) { return(StatusCode(404, new ErrorClass(404, "Sensor não encontrado", DateTime.Now))); } bool proximo = false; string proximoSensorHash = string.Empty; string movimento = string.Empty; foreach (string s in rota.Tracado.Split(';')) { long idSensor = ConvertToLong(s.Split('-')[0]); if (idSensor == 0) { return(StatusCode(404, new ErrorClass(404, "Sensor não encontrado na rota", DateTime.Now))); } if (proximo) { proximoSensorHash = Sensor.FindById(idSensor).Hash; break; } if (idSensor == sensor.Id) { movimento = s.Split('-')[1]; if (movimento == "Final") { proximoSensorHash = "FIM DA ROTA"; break; } proximo = true; } } c.ChangeUltimoSensor(sensor); c.UpdateCarrinho(); UltimoSensor u = new UltimoSensor() { Movimento = movimento, ProximoSensor = proximoSensorHash }; return(Ok(u)); } catch (MercurioCoreException ex) { return(StatusCode(400, new ErrorClass(400, ex.Message, DateTime.Now))); } catch (DBConnectionException ex) { return(StatusCode(500, new ErrorClass(500, ex.Message, DateTime.Now))); } }