public ActionResult <string> UltimaAvaliacao([FromBody] dynamic rec) { lock (_system) { var jobject = JObject.Parse(JsonSerializer.Serialize(rec)); if (!_system.isUserOnline(jobject.valueST.ToString())) { return(Unauthorized("Client Offline")); } string email = jobject.email.ToString(); Avaliaçao av = _system.GetUltAvaliaçaoR(email); if (av == null) { return(NotFound("Utilizador ainda não tem Avaliaçoes")); } JObject job = JObject.Parse(JsonConvert.SerializeObject(av)); var nome = _system.GetUser(email).GetName(); //---------------- Patch job.Remove("id"); job.Remove("realizada"); job.Remove("instrutor_email"); job.Add("comentario", " "); job.Add("massa_gorda_img", " "); job.Add("cliente_nome", nome); //------------ return(Ok(job.ToString())); } }
// ----------------------------------------------------------------------------------------------- /* * Funções gerais que recebem um comando SQL e retornam uma Lista ou um elemento de Avaliações * Estas funções são usadas noutras queries mais expecíficas */ /* * Função geral que recebe um comando SQL e, a partir deste, retorna * uma lista de Avaliações pretendidas */ public List <Avaliaçao> GenericListaAvR(MySqlCommand command) { List <Avaliaçao> listAv = new List <Avaliaçao>(); try { // Abre a conexão à Base de Dados if (connection.State == ConnectionState.Closed) { if (connection.State == ConnectionState.Closed) { connection.Open(); } } Perimetros p; Composiçao_Corporal cc; MySqlDataReader reader = command.ExecuteReader(); Avaliaçao ava; // Inicia a leitura do resultado do comando SQL while (reader.Read()) { /* * Caso o atributo "altura" (está na posição 1 do resultado do SQL) da Base de Dados seja null * é porque a Avaliação não foi realizada. */ if (!reader.IsDBNull(1)) { cc = new Composiçao_Corporal(reader.GetInt32(1), reader.GetFloat(2), reader.GetFloat(3), reader.GetFloat(4), reader.GetFloat(5), reader.GetInt32(6)); p = new Perimetros(reader.GetFloat(7), reader.GetFloat(8), reader.GetFloat(9), reader.GetFloat(10), reader.GetFloat(11), reader.GetFloat(12), reader.GetFloat(13), reader.GetFloat(14), reader.GetFloat(15), reader.GetFloat(16), reader.GetFloat(17), reader.GetFloat(18)); ava = new Avaliaçao(reader.GetDateTime(19), reader.GetString(20), reader.GetString(21), cc, p); listAv.Add(ava); } } reader.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { // Fecha a conexão à Base de Dados connection.Close(); } return(listAv); }
public ActionResult <string> Agendar([FromBody] dynamic obj) { lock (_system) { ActionResult <string> ret = Ok(); JObject job = JObject.Parse((string)obj.ToString()); if (!_system.isUserOnline(job.GetValue("valueST").ToString())) { return(Unauthorized("Client Offline")); } JObject ava = (JObject)job.GetValue("avaliacao"); Avaliaçao av = new Avaliaçao(Convert.ToDateTime(ava.GetValue("data").ToString()), ava.GetValue("instrutor_email").ToString(), job.GetValue("email").ToString()); //Console.WriteLine(av); if (!_system.agendarAvaliaçao(av)) { ret = BadRequest(); } return(ret); } }
public ActionResult <string> criarAvaliacao([FromBody] dynamic rec) { lock (_system) { JObject jObject = JObject.Parse(rec.ToString()); DateTime data = Convert.ToDateTime(jObject["data"].ToString()); string email_cliente = (string)jObject["email_cliente"]; string email_instrutor = (string)jObject["email_instrutor"]; if (!_system.isUserOnline(jObject.GetValue("valueST").ToString())) { return(Unauthorized("Client Offline")); } ActionResult <string> ret = BadRequest("Impossível inserir avaliação"); try { if (email_cliente.Equals("")) { throw new Exception("EMAIL INVÁLIDO"); } Composiçao_Corporal cc = new Composiçao_Corporal( int.Parse(jObject["plano_treino"]["composicao_corporal"]["altura"].ToString()), float.Parse(jObject["plano_treino"]["composicao_corporal"]["peso"].ToString()), float.Parse(jObject["plano_treino"]["composicao_corporal"]["massa_gorda"].ToString()), float.Parse(jObject["plano_treino"]["composicao_corporal"]["massa_magra"].ToString()), float.Parse(jObject["plano_treino"]["composicao_corporal"]["imc"].ToString()), int.Parse(jObject["plano_treino"]["composicao_corporal"]["idade_metabolica"].ToString())); Perimetros p = new Perimetros( float.Parse(jObject["plano_treino"]["perimetros"]["cintura"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["abdomen"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["ombro"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["torax"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["braco_dir"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["braco_esq"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["coxa_dir"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["coxa_esq"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["gemeo_dir"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["gemeo_esq"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["antebraco_dir"].ToString()), float.Parse(jObject["plano_treino"]["perimetros"]["antebraco_esq"].ToString())); Avaliaçao av = new Avaliaçao( data, email_instrutor, email_cliente, cc, p); if (_system.AddAvaliacao(av)) { ret = Ok(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } return(ret); } }
public bool UpdateAvaliaçaoRealizada(Avaliaçao av) { bool r = false; try { // Abre a conexão à Base de Dados if (connection.State == ConnectionState.Closed) { if (connection.State == ConnectionState.Closed) { connection.Open(); } } MySqlCommand command; string sqlCommand; sqlCommand = "select idAvaliaçao from Avaliaçao_Agendada where Cliente_email = @CLIENTE_EMAIL and " + "Instrutor_email = @INSTRUTOR_EMAIL and data = @DATA"; command = new MySqlCommand(sqlCommand, connection); command = new MySqlCommand(sqlCommand, connection); command.Parameters.Add(new MySqlParameter("@CLIENTE_EMAIL", MySqlDbType.VarChar)); command.Parameters["@CLIENTE_EMAIL"].Value = av.cliente_email; command.Parameters.Add(new MySqlParameter("@INSTRUTOR_EMAIL", MySqlDbType.VarChar)); command.Parameters["@INSTRUTOR_EMAIL"].Value = av.instrutor_email; command.Parameters.Add(new MySqlParameter("@DATA", MySqlDbType.DateTime)); command.Parameters["@DATA"].Value = av.data; int id = Convert.ToInt32(command.ExecuteScalar()); sqlCommand = "update Avaliaçao_Realizada " + "set altura = @ALTURA, peso = @PESO, massa_Gorda = @MASSA_GORDA, " + "massa_Magra = @MASSA_MAGRA, imc = @IMC, idade_Metabolica = @IDADE_METABOLICA, " + "cintura = @CINTURA, abdomen = @ABDOMEN, ombro = @OMBRO, torax = @TORAX, " + " braço_direito = @BRAÇO_DIR, braço_esquerdo = @BRAÇO_ESQ, coxa_direita = @COXA_DIR, " + "coxa_esquerda = @COXA_ESQ, gemeo_direito = @GEMEO_DIR, " + "gemeo_esquerdo = @GEMEO_ESQ, antebraço_direito = @ANTEBRAÇO_DIR, antebraço_esquerdo = @ANTEBRAÇO_ESQ " + "where idAvaliaçao = @ID"; command = new MySqlCommand(sqlCommand, connection); av.composicao_corporal.IniParamSql(command); av.perimetros.IniParamSql(command); command.Parameters.Add(new MySqlParameter("@ID", MySqlDbType.Int32)); command.Parameters["@ID"].Value = id; if (command.ExecuteNonQuery() > 0) { r = true; } } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { // Fecha a conexão à Base de Dados connection.Close(); } return(r); }
// Vai buscar todas as Avaliações (realizadas ou não) // Vai buscar todas as Avaliações (realizadas ou não) public List <Avaliaçao> GetTodasAvaliaçoes() { List <Avaliaçao> r = new List <Avaliaçao>(); try { // Abre a conexão à Base de Dados if (connection.State == ConnectionState.Closed) { if (connection.State == ConnectionState.Closed) { connection.Open(); } } Perimetros p; Composiçao_Corporal cc; // Comando SQL para aceder aos atributos permitindo a criação da classe Avaliaçao string sqlCommand = "select * from Avaliaçao_Realizada ar, Avaliaçao_Agendada aa " + "where ar.idAvaliaçao = aa.idAvaliaçao"; MySqlCommand command = new MySqlCommand(sqlCommand, connection); MySqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { if (!reader.IsDBNull(1)) { cc = new Composiçao_Corporal(reader.GetInt32(1), reader.GetFloat(2), reader.GetFloat(3), reader.GetFloat(4), reader.GetFloat(5), reader.GetInt32(6)); p = new Perimetros(reader.GetFloat(7), reader.GetFloat(8), reader.GetFloat(9), reader.GetFloat(10), reader.GetFloat(11), reader.GetFloat(12), reader.GetFloat(13), reader.GetFloat(14), reader.GetFloat(15), reader.GetFloat(16), reader.GetFloat(17), reader.GetFloat(18)); } else { /* * Como queremos todas avaliações, adicionamos os valores que estão a null na BD * a 0 na classe Avaliaçao (ou seja, quando a avaliação ainda não foi realizada) */ cc = new Composiçao_Corporal(); p = new Perimetros(); } Avaliaçao ava = new Avaliaçao(reader.GetDateTime(19), reader.GetString(20), reader.GetString(21), cc, p); r.Add(ava); } reader.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { // Fecha a conexão à Base de Dados connection.Close(); } return(r); }
public bool InsertAvaliaçao(Avaliaçao av) { var ret = true; try { // Abre a conexão à Base de Dados if (connection.State == ConnectionState.Closed) { if (connection.State == ConnectionState.Closed) { connection.Open(); } } MySqlCommand command; string sqlCommand; bool isNull = true; if (av.realizada) { // Foi realizado, logo não preenchemos os valores da tabela "Avaliaçao_Realizada" a null isNull = false; } /* * Comando SQL para inserir uma Avaliação à tabela de avaliações realizadas */ sqlCommand = "insert into Avaliaçao_Realizada (altura, peso, massa_Gorda, " + "massa_Magra, imc, idade_Metabolica, cintura, abdomen, ombro, torax," + " braço_direito, braço_esquerdo, coxa_direita, coxa_esquerda, gemeo_direito, " + "gemeo_esquerdo, antebraço_direito, antebraço_esquerdo) " + "values(" + av.composicao_corporal.ToSql(isNull) + ", " + av.perimetros.ToSql(isNull) + ")"; command = new MySqlCommand(sqlCommand, connection); av.composicao_corporal.IniParamSql(command); av.perimetros.IniParamSql(command); command.ExecuteScalar(); command = new MySqlCommand("select LAST_INSERT_ID()", connection); int idAva = Convert.ToInt32(command.ExecuteScalar()); /* * Comando SQL para inserir uma Avaliação à tabela de avaliações agendadas */ sqlCommand = "insert into Avaliaçao_Agendada values(@DATA, @INSTRUTOR_EMAIL, " + "@CLIENTE_EMAIL, @ID)"; command = new MySqlCommand(sqlCommand, connection); command.Parameters.Add(new MySqlParameter("@DATA", MySqlDbType.DateTime)); command.Parameters["@DATA"].Value = av.data.ToString("yyyy-MM-dd HH:mm:ss"); command.Parameters.Add(new MySqlParameter("@INSTRUTOR_EMAIL", MySqlDbType.VarChar)); command.Parameters["@INSTRUTOR_EMAIL"].Value = av.instrutor_email; command.Parameters.Add(new MySqlParameter("@CLIENTE_EMAIL", MySqlDbType.VarChar)); command.Parameters["@CLIENTE_EMAIL"].Value = av.cliente_email; command.Parameters.Add(new MySqlParameter("@ID", MySqlDbType.Int32)); command.Parameters["@ID"].Value = idAva; command.ExecuteScalar(); } catch (Exception e) { Console.WriteLine(e.ToString()); ret = false; return(ret); } finally { // Fecha a conexão à Base de Dados connection.Close(); } return(ret); }