コード例 #1
0
ファイル: AvaliacaoController.cs プロジェクト: devzizu/umfit
        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()));
            }
        }
コード例 #2
0
ファイル: AvaliaçaoDAO.cs プロジェクト: devzizu/umfit
        // -----------------------------------------------------------------------------------------------

        /*
         * 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);
        }
コード例 #3
0
ファイル: AvaliacaoController.cs プロジェクト: devzizu/umfit
        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);
            }
        }
コード例 #4
0
ファイル: AvaliacaoController.cs プロジェクト: devzizu/umfit
        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);
            }
        }
コード例 #5
0
ファイル: AvaliaçaoDAO.cs プロジェクト: devzizu/umfit
        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);
        }
コード例 #6
0
ファイル: AvaliaçaoDAO.cs プロジェクト: devzizu/umfit
        // 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);
        }
コード例 #7
0
ファイル: AvaliaçaoDAO.cs プロジェクト: devzizu/umfit
        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);
        }