public ActionResult <string> SetPlano([FromBody] dynamic rec) { lock (_system) { var jobject = JObject.Parse(JsonSerializer.Serialize(rec)); if (!_system.isUserOnline(jobject.valueST.ToString())) { return(Unauthorized("Client Offline")); } ActionResult <string> ret = BadRequest("Impossível inserir plano alimentar"); string email = jobject.GetValue("email"); JObject plano = jobject.GetValue("planoAlimentar"); List <Refeiçao> lista = new List <Refeiçao>(); JArray ja = plano.GetValue("lista_refeicoes").ToObject <JArray>(); try { if (email.Equals("")) { throw new Exception("EMAIL BROKEN"); } foreach (JObject v in ja) { Refeiçao re = new Refeiçao(v.GetValue("nome").ToString(), v.GetValue("descricao").ToString() ); lista.Add(re); } PlanoAlimentar pa = new PlanoAlimentar( email, plano.GetValue("nome").ToString(), plano.GetValue("frequencia").ToString(), int.Parse(plano.GetValue("refeicoes_livres").ToString()), DateTime.Parse(plano.GetValue("data_fim").ToString()), lista ); if (_system.AddPlanoAlimentar(pa)) { ret = Ok(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } return(ret); } }
public List <PlanoAlimentar> GetPlanoAlimentar(string cliente_email) { List <PlanoAlimentar> planos = new List <PlanoAlimentar>(); try { if (connection.State == ConnectionState.Closed) { connection.Open(); } string sqlCommand = "select idPlano_Alimentar from PlanoAlimentar_do_Cliente where Cliente_email = @CLIENTE_EMAIL"; MySqlCommand command = new MySqlCommand(sqlCommand, connection); command.Parameters.Add("@CLIENTE_EMAIL", MySqlDbType.VarChar); command.Parameters["@CLIENTE_EMAIL"].Value = cliente_email; MySqlDataReader reader = command.ExecuteReader(); List <int> listaIdPlanos = new List <int>(); while (reader.Read()) { listaIdPlanos.Add(reader.GetInt16(0)); } reader.Close(); DateTime now = DateTime.Now.Date; for (int i = 0; i < listaIdPlanos.Count; i++) { string sqlCommandPlanoAlimentar = "select * from Plano_Alimentar where idPlano_Alimentar = @ID and " + "data_Fim > @DATA"; MySqlCommand commandPlanoAlimentar = new MySqlCommand(sqlCommandPlanoAlimentar, connection); string sqlCommandRefeiçao = "select * from Refeiçao e left join Plano_Alimentar_Refeiçoes ept " + "on e.idRefeiçao = ept.idRefeiçao where ept.idPlano_Alimentar = @ID"; MySqlCommand commandRefeiçao = new MySqlCommand(sqlCommandRefeiçao, connection); commandPlanoAlimentar.Parameters.Add("@ID", MySqlDbType.Int16); commandPlanoAlimentar.Parameters["@ID"].Value = listaIdPlanos[i]; commandPlanoAlimentar.Parameters.Add("@DATA", MySqlDbType.Date); commandPlanoAlimentar.Parameters["@DATA"].Value = now; reader = commandPlanoAlimentar.ExecuteReader(); reader.Read(); PlanoAlimentar pa = null; if (reader.HasRows) { pa = new PlanoAlimentar(cliente_email, reader.GetString(1), reader.GetString(2), reader.GetInt16(3), reader.GetDateTime(4), new List <Refeiçao>()); commandRefeiçao.Parameters.Add("@ID", MySqlDbType.Int16); commandRefeiçao.Parameters["@ID"].Value = listaIdPlanos[i]; reader.Close(); reader = commandRefeiçao.ExecuteReader(); while (reader.HasRows && reader.Read()) { Refeiçao r = new Refeiçao(reader.GetString(1), reader.GetString(2)); pa.refeiçoes.Add(r); } reader.Close(); } reader.Close(); planos.Add(pa); } } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { connection.Close(); } return(planos); }