/// <summary>
      /// Este método salva e atualiza a tabela de Alimentação
      /// </summary>
      /// <param name="objDesenvolvimento"></param>
      /// <returns></returns>
        public Desenvolvimento SalvarDesenvolvimento(Desenvolvimento objDesenvolvimento)
        {
            DesenvolvimentoDados objDesenvolvimentoDados = new DesenvolvimentoDados();

            objDesenvolvimento = objDesenvolvimentoDados.Salvar(objDesenvolvimento);

            return objDesenvolvimento;
        }
        private async Task <Desenvolvimento> ObterDesenvolvimento(int JogadorID)
        {
            Desenvolvimento desenv = new Desenvolvimento();

            if (JogadorID <= 0)
            {
                return(desenv);
            }


            using (var DesenvolvimenteRep = new DesenvolvimentoRepository(new ProclubeContext()))
            {
                desenv = await DesenvolvimenteRep.FindAsync(s => s.JogadorID == JogadorID);
            }

            return(desenv);
        }
        public Desenvolvimento ObterUltimo()
        {
            SqlCommand comando = new SqlCommand(@"SELECT TOP (1) * FROM Desenvolvimento ORDER BY CodigoDesenvolvimento DESC", base.Conectar());
            SqlDataReader leitorDados = comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            Desenvolvimento objDesenvolvimento = null;

            if (leitorDados.Read())
            {
                objDesenvolvimento = new Desenvolvimento();

                objDesenvolvimento.CodigoDesenvolvimento = Convert.ToInt32(leitorDados["CodigoDesenvolvimento"]);
                objDesenvolvimento.CodigoAssistido = Convert.ToInt32(leitorDados["CodigoAssistido"]);
                objDesenvolvimento.Atividade = leitorDados["Atividade"].ToString();
                objDesenvolvimento.TipoAtividade = leitorDados["TipoAtividade"].ToString();
                objDesenvolvimento.DescricaoAtividade = leitorDados["DescricaoAtividade"].ToString();
                
                if (leitorDados["Valor"] != DBNull.Value)
                    objDesenvolvimento.Valor = Convert.ToDecimal(leitorDados["Valor"]);
                
                objDesenvolvimento.CargaHoraria = leitorDados["CargaHoraria"].ToString();
                objDesenvolvimento.StatusAtividade = leitorDados["StatusAtividade"].ToString();

                if (leitorDados["DataInicio"] != DBNull.Value)
                    objDesenvolvimento.DataInicio = Convert.ToDateTime(leitorDados["DataInicio"]);

                if (leitorDados["DataFim"] != DBNull.Value)
                    objDesenvolvimento.DataFim = Convert.ToDateTime(leitorDados["DataFim"]);



            }

            leitorDados.Close();
            leitorDados.Dispose();

            return objDesenvolvimento;
        }
        public Desenvolvimento Salvar(Desenvolvimento objDesenvolvimento)
        {
            SqlCommand comando = new SqlCommand();
            comando.Connection = base.Conectar();


            if (!objDesenvolvimento.CodigoDesenvolvimento.HasValue)
            {
                comando.CommandText =
                    @"INSERT INTO Desenvolvimento (CodigoAssistido, Atividade, TipoAtividade,  DescricaoAtividade,
                                  Valor, DataInicio, DataFim, CargaHoraria, StatusAtividade)
                    VALUES (@codigoAssistido, @atividade, @tipoAtividade, @descricaoAtividade, @valor,
                           @dataInicio,@dataFim, @cargaHoraria, @statusAtividade)";
            }
            else
            {
                comando.CommandText =
                    @"UPDATE Desenvolvimento SET CodigoAssistido = @codigoAssistido, Atividade = @atividade,
                             TipoAtividade = @tipoAtividade, DescricaoAtividade = @descricaoAtividade, Valor = @valor,
                             DataInicio = @dataInicio, DataFim = @dataFim, CargaHoraria = @cargaHoraria, StatusAtividade = @statusAtividade
                             WHERE (CodigoDesenvolvimento = @codigoDesenvolvimento)"; 
            }

            comando.CommandType = System.Data.CommandType.Text;
            if (objDesenvolvimento.CodigoDesenvolvimento.HasValue)
            {
                SqlParameter parametroCodigo = new SqlParameter("@codigoDesenvolvimento", objDesenvolvimento.CodigoDesenvolvimento.Value);
                parametroCodigo.DbType = System.Data.DbType.Int32;
                comando.Parameters.Add(parametroCodigo);
            }

            SqlParameter parametroCodigoAssistido = new SqlParameter();
            if (objDesenvolvimento.CodigoAssistido.HasValue)
            {
                parametroCodigoAssistido.Value = objDesenvolvimento.CodigoAssistido.Value;
                parametroCodigoAssistido.ParameterName = "@codigoAssistido";
                parametroCodigoAssistido.DbType = System.Data.DbType.Int32;
            }
            else
            {
                parametroCodigoAssistido.Value = DBNull.Value;
                parametroCodigoAssistido.ParameterName = "@codigoAssistido";
                parametroCodigoAssistido.DbType = System.Data.DbType.Int32;
            }

            SqlParameter parametroAtividade = new SqlParameter("@atividade", objDesenvolvimento.Atividade);
            parametroAtividade.DbType = System.Data.DbType.String;

            SqlParameter parametroTipoAtividade = new SqlParameter("@tipoAtividade", objDesenvolvimento.TipoAtividade);
            parametroTipoAtividade.DbType = System.Data.DbType.String;

            SqlParameter parametroDescricaoAtividade = new SqlParameter("@descricaoAtividade", objDesenvolvimento.DescricaoAtividade);
            parametroDescricaoAtividade.DbType = System.Data.DbType.String;

            SqlParameter parametroValor = new SqlParameter("@valor", System.Data.DbType.Decimal);
            if (objDesenvolvimento.Valor.HasValue)
                parametroValor.Value = objDesenvolvimento.Valor;
            else
                parametroValor.Value = DBNull.Value;


            SqlParameter parametroDataInicio = new SqlParameter();
            if (objDesenvolvimento.DataInicio.HasValue)
            {
                parametroDataInicio.Value = objDesenvolvimento.DataInicio.Value;
                parametroDataInicio.ParameterName = "@dataInicio";
                parametroDataInicio.DbType = System.Data.DbType.DateTime;
            }
            else
            {
                parametroDataInicio.Value = DBNull.Value;
                parametroDataInicio.ParameterName = "@dataInicio";
                parametroDataInicio.DbType = System.Data.DbType.DateTime;
            }

            SqlParameter parametroDataFim = new SqlParameter();
            if (objDesenvolvimento.DataFim.HasValue)
            {
                parametroDataFim.Value = objDesenvolvimento.DataFim.Value;
                parametroDataFim.ParameterName = "@dataFim";
                parametroDataFim.DbType = System.Data.DbType.DateTime;
            }
            else
            {
                parametroDataFim.Value = DBNull.Value;
                parametroDataFim.ParameterName = "@dataFim";
                parametroDataFim.DbType = System.Data.DbType.DateTime;
            }

            SqlParameter parametroCargaHoraria = new SqlParameter("@cargaHoraria", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objDesenvolvimento.CargaHoraria))
                parametroCargaHoraria.Value = objDesenvolvimento.CargaHoraria;
            else
                parametroCargaHoraria.Value = DBNull.Value;

            SqlParameter parametroStatusAtividade = new SqlParameter("@statusAtividade", objDesenvolvimento.StatusAtividade);
            parametroStatusAtividade.DbType = System.Data.DbType.String;

            comando.Parameters.Add(parametroCodigoAssistido);
            comando.Parameters.Add(parametroAtividade);
            comando.Parameters.Add(parametroTipoAtividade);
            comando.Parameters.Add(parametroDescricaoAtividade);
            comando.Parameters.Add(parametroValor);
            comando.Parameters.Add(parametroDataInicio);
            comando.Parameters.Add(parametroDataFim);
            comando.Parameters.Add(parametroCargaHoraria);
            comando.Parameters.Add(parametroStatusAtividade);

            comando.ExecuteNonQuery();

            if (!objDesenvolvimento.CodigoDesenvolvimento.HasValue)
            {
                return ObterUltimo();
            }
            else
            {
                return objDesenvolvimento;
            }
        }
        /// <summary>
        /// Obtém o Desenvolvimento pelo Código do Desenvolvimento
        /// </summary>
        /// <param name="codigoDesenvolvimento"></param>
        /// <returns></returns>
        public Desenvolvimento Obter(int codigoDesenvolvimento)
        {
            SqlCommand comando = new SqlCommand("select * from Desenvolvimento where CodigoDesenvolvimento = @codigoDesenvolvimento", base.Conectar());
            SqlParameter parametroCodigoDesenvolvimento = new SqlParameter("@codigoDesenvolvimento", codigoDesenvolvimento);
            parametroCodigoDesenvolvimento.DbType = System.Data.DbType.Int32;
            comando.Parameters.Add(parametroCodigoDesenvolvimento);

            SqlDataReader leitorDados = comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            Desenvolvimento objDesenvolvimento = null;

            if (leitorDados.Read())
            {
                objDesenvolvimento = new Desenvolvimento();

                objDesenvolvimento.CodigoDesenvolvimento = codigoDesenvolvimento;
                objDesenvolvimento.CodigoAssistido = Convert.ToInt32(leitorDados["CodigoAssistido"]);
                objDesenvolvimento.Atividade = leitorDados["Atividade"].ToString();
                objDesenvolvimento.TipoAtividade = leitorDados["TipoAtividade"].ToString();
                objDesenvolvimento.DescricaoAtividade = leitorDados["DescricaoAtividade"].ToString();
                if (leitorDados["Valor"] != DBNull.Value)
                    objDesenvolvimento.Valor = Convert.ToDecimal(leitorDados["Valor"]);
                if (leitorDados["DataInicio"] != DBNull.Value)
                    objDesenvolvimento.DataInicio = Convert.ToDateTime(leitorDados["DataInicio"]); ;
                if (leitorDados["DataFim"] != DBNull.Value)
                    objDesenvolvimento.DataFim = Convert.ToDateTime(leitorDados["DataFim"]); ;
                objDesenvolvimento.CargaHoraria = leitorDados["CargaHoraria"].ToString();
                objDesenvolvimento.StatusAtividade = leitorDados["StatusAtividade"].ToString();

            }

            leitorDados.Close();
            leitorDados.Dispose();

            return objDesenvolvimento;
        }
 /// <summary>
 /// Construtor com parâmetro
 /// </summary>
 /// <param name="umDesenvolvimento"></param>
 public DesenvolvimentoDTO(Desenvolvimento umDesenvolvimento)
 {
     this.Desenvolvimento = umDesenvolvimento;
 }