/// <summary>
        /// Este método cadastro ou atualiza um assistido
        /// </summary>
        /// <param name="objAssistido"></param>
        /// <returns></returns>
        public Assistido Salvar(Assistido objAssistido)
        {
            PessoaDados objPessoaDados = new PessoaDados();
            objPessoaDados.Salvar(objAssistido);

            SqlCommand comando = new SqlCommand();
            comando.Connection = base.Conectar();

            if (!objAssistido.CodigoAssistido.HasValue)
            {
                objAssistido.CodigoAssistido = objAssistido.CodigoPessoa;

                comando.CommandText =
                    @"
                    INSERT INTO Assistido
                         (CodigoAssistido, StatusAssistido, CertidaoNascimento, DataEntrada, DataSaida, EstadoSaude, 
                          Peso, Etnia, Altura, TamCamisa, TamCalca, TamCalcado, Dormitorio, Deficiente, Hobby, HistoricoVida, 
                          NomePai, NomeMae, PaiVivo, MaeViva, CPFPai, CPFMae, RGPai, RGMae, TelefonePai, TelefoneMae,  
                          QtdIrmaos, NomeResponsavel, CPFResponsavel, CodigoContatoResponsavel)
                    VALUES
                         (@codigoAssistido, @statusAssistido, @certidaoNascimento, @dataEntrada, @dataSaida, @estadoSaude,
                          @peso, @Etnia, @altura, @tamCamisa, @tamCalca, @tamCalcado, @dormitorio, @Deficiente, @Hobby, @historicoVida,
                          @nomePai, @nomeMae, @paiVivo, @maeViva, @cpfPai, @cpfMae, @rgPai, @rgMae, @telefonePai, @telefoneMae,
                          @qtdIrmaos, @nomeResponsavel, @cpfResponsavel, @codigoContatoResponsavel)";
            }
            else
            {
                comando.CommandText =
                    @"
                    UPDATE Assistido
                    SET  StatusAssistido = @statusAssistido, CertidaoNascimento = @certidaoNascimento, DataEntrada = @dataEntrada, 
                         DataSaida = @dataSaida, EstadoSaude = @estadoSaude, Peso = @peso, Etnia = @Etnia, Altura = @altura, TamCamisa = @tamCamisa, 
                         TamCalca = @tamCalca, TamCalcado = @tamCalcado, Dormitorio = @dormitorio, Deficiente = @Deficiente, Hobby = @Hobby,
                         HistoricoVida = @historicoVida, NomePai = @nomePai, NomeMae = @nomeMae, PaiVivo = @paiVivo,  MaeViva = @maeViva, CPFPai = @cpfPai, 
                         CPFMae = @cpfMae, RGPai = @rgPai, RGMae = @rgMae, TelefonePai = @telefonePai, TelefoneMae = @telefoneMae, 
                         QtdIrmaos = @qtdIrmaos, NomeResponsavel = @nomeResponsavel, CPFResponsavel = @cpfResponsavel, CodigoContatoResponsavel = @codigoContatoResponsavel
                    WHERE CodigoAssistido = @codigoAssistido";

            }

            comando.CommandType = System.Data.CommandType.Text;
            if (objAssistido.CodigoAssistido.HasValue)
            {
                SqlParameter parametroCodigoAssistido = new SqlParameter("@codigoAssistido", objAssistido.CodigoAssistido.Value);
                parametroCodigoAssistido.DbType = System.Data.DbType.Int32;
                comando.Parameters.Add(parametroCodigoAssistido);
            }

            SqlParameter parametroStatusAssistido = new SqlParameter("@statusAssistido", objAssistido.StatusAssistido);
            parametroStatusAssistido.DbType = System.Data.DbType.String;

            SqlParameter parametroCertidaoNascimento = new SqlParameter("@certidaoNascimento", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.CertidaoNascimento))
                parametroCertidaoNascimento.Value = objAssistido.CertidaoNascimento;
            else
                parametroCertidaoNascimento.Value = DBNull.Value;

            SqlParameter parametroDataEntrada = new SqlParameter("@dataEntrada", objAssistido.DataEntrada.Value);
            parametroDataEntrada.DbType = System.Data.DbType.DateTime;

            SqlParameter parametroDataSaida = new SqlParameter("@dataSaida", System.Data.DbType.DateTime);
            if (objAssistido.DataSaida.HasValue)
                parametroDataSaida.Value = objAssistido.DataSaida.Value;
            else
                parametroDataSaida.Value = DBNull.Value;

            SqlParameter parametroEstadoSaude = new SqlParameter("@estadoSaude", objAssistido.EstadoSaude);
            parametroEstadoSaude.DbType = System.Data.DbType.String;

            SqlParameter parametroPeso = new SqlParameter("@peso", objAssistido.Peso);
            parametroPeso.DbType = System.Data.DbType.Decimal;

            SqlParameter parametroEtnia = new SqlParameter("@Etnia", objAssistido.Etnia);
            parametroEtnia.DbType = System.Data.DbType.String;

            SqlParameter parametroAltura = new SqlParameter("@altura", objAssistido.Altura);
            parametroAltura.DbType = System.Data.DbType.Decimal;

            SqlParameter parametroTamCamisa = new SqlParameter("@tamCamisa", objAssistido.TamanhoCamisa);
            parametroTamCamisa.DbType = System.Data.DbType.String;

            SqlParameter parametroTamCalca = new SqlParameter("@tamCalca", objAssistido.TamanhoCalca);
            parametroTamCalca.DbType = System.Data.DbType.String;

            SqlParameter parametroTamCalcado = new SqlParameter("@tamCalcado", objAssistido.TamanhoCalcado);
            parametroTamCalcado.DbType = System.Data.DbType.String;

            SqlParameter parametroDormitorio = new SqlParameter("@dormitorio", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.Dormitorio))
                parametroDormitorio.Value= objAssistido.Dormitorio;
            else
                parametroDormitorio.Value= DBNull.Value;

            SqlParameter parametroDeficiente = new SqlParameter("@deficiente", objAssistido.Deficiente);
            parametroDeficiente.DbType = System.Data.DbType.String ;

            SqlParameter parametroHobby = new SqlParameter("@hobby", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.Hobby))
                parametroHobby.Value = objAssistido.Hobby;
            else
                parametroHobby.Value = DBNull.Value;

            SqlParameter parametroHistoricoVida = new SqlParameter("@historicoVida", System.Data.DbType.String);
            if(!String.IsNullOrEmpty(objAssistido.HistoricoVida))
                parametroHistoricoVida.Value = objAssistido.HistoricoVida;
            else
                parametroHistoricoVida.Value = DBNull.Value;

            //Dados Pais
            SqlParameter parametroNomePai = new SqlParameter("@nomePai", System.Data.DbType.String);
            if(!String.IsNullOrEmpty(objAssistido.Pai))
                parametroNomePai.Value = objAssistido.Pai;
            else
                parametroNomePai.Value = DBNull.Value;

            SqlParameter parametroNomeMae = new SqlParameter("@nomeMae", System.Data.DbType.String);
            if(!String.IsNullOrEmpty(objAssistido.Mae))
                parametroNomeMae.Value = objAssistido.Mae;
            else
                parametroNomeMae.Value = DBNull.Value;

            SqlParameter parametroPaiVivo = new SqlParameter("@paiVivo", System.Data.DbType.String);
            if(!String.IsNullOrEmpty(objAssistido.PaiVivo))
                parametroPaiVivo.Value = objAssistido.PaiVivo;
            else
                parametroPaiVivo.Value = DBNull.Value;

            SqlParameter parametroMaeViva = new SqlParameter("@maeViva", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.MaeViva))
                parametroMaeViva.Value = objAssistido.MaeViva;
            else
                parametroMaeViva.Value = DBNull.Value;

            SqlParameter parametroCPFPai = new SqlParameter("@cpfPai", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.CPFPai))
                parametroCPFPai.Value = objAssistido.CPFPai;
            else
                parametroCPFPai.Value = objAssistido.CPFPai;

            SqlParameter parametroCPFMae = new SqlParameter("@cpfMae", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.CPFMae))
                parametroCPFMae.Value = objAssistido.CPFMae;
            else
                parametroCPFMae.Value = DBNull.Value;

            SqlParameter parametroRGPai = new SqlParameter("@rgPai", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.RGPai))
                parametroRGPai.Value = objAssistido.RGPai;
            else
                parametroRGPai.Value = DBNull.Value;

            SqlParameter parametroRGMae = new SqlParameter("@rgMae", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.RGMae))
                parametroRGMae.Value = objAssistido.RGMae;
            else
                parametroRGMae.Value = DBNull.Value;

            SqlParameter parametroTelefonePai = new SqlParameter("@telefonePai", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.TelefonePai))
                parametroTelefonePai.Value = objAssistido.TelefonePai;
            else
                 parametroTelefonePai.Value = DBNull.Value;

            SqlParameter parametroTelefoneMae = new SqlParameter("@telefoneMae", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objAssistido.TelefoneMae))
                parametroTelefoneMae.Value = objAssistido.TelefoneMae;
            else
                parametroTelefoneMae.Value = DBNull.Value;

            SqlParameter parametroQtdIrmaos = new SqlParameter("@qtdIrmaos", System.Data.DbType.Int32);
            if(objAssistido.QtdIrmaos.HasValue)
                parametroQtdIrmaos.Value = objAssistido.QtdIrmaos;    
            else
                parametroQtdIrmaos.Value = DBNull.Value; ;    
            

            //Dados Responsavel
            SqlParameter parametroNomeResponsavel = new SqlParameter("@nomeResponsavel", System.Data.DbType.String);
            if(!String.IsNullOrEmpty(objAssistido.ResponsavelLegal))
                parametroNomeResponsavel.Value = objAssistido.ResponsavelLegal;
            else
                parametroNomeResponsavel.Value = DBNull.Value;

            SqlParameter parametroCPFResponsavel = new SqlParameter("@cpfResponsavel", System.Data.DbType.String);
            if(!String.IsNullOrEmpty(objAssistido.ResponsavelLegal))
                parametroCPFResponsavel.Value = objAssistido.CPFResponsavel;
            else
                parametroCPFResponsavel.Value = DBNull.Value;

            //Adiciona os dados de contato do Responsavel na tabela Contato
            //TODO: Maycon verificar se os campos de contato do responsável foram preenchidos
            if (objAssistido.ContatoResponsavel != null)
            {
                ContatoDados objContatoDados = new ContatoDados();
                objAssistido.ContatoResponsavel = objContatoDados.Salvar(objAssistido.ContatoResponsavel);
                objAssistido.CodigoContatoResponsavel = objAssistido.ContatoResponsavel.CodigoContato;
            }
            
            SqlParameter parametroCodigoContatoResponsavel = new SqlParameter("@codigoContatoResponsavel", System.Data.DbType.String);
            if(objAssistido.CodigoContatoResponsavel.HasValue)
                parametroCodigoContatoResponsavel.Value = objAssistido.CodigoContatoResponsavel.Value;
            else
                parametroCodigoContatoResponsavel.Value = DBNull.Value;

            //Parametros
            comando.Parameters.Add(parametroStatusAssistido);
            comando.Parameters.Add(parametroDataEntrada);
            comando.Parameters.Add(parametroDataSaida);
            comando.Parameters.Add(parametroEstadoSaude);
            comando.Parameters.Add(parametroCertidaoNascimento);
            comando.Parameters.Add(parametroPeso);
            comando.Parameters.Add(parametroAltura);
            comando.Parameters.Add(parametroEtnia);
            comando.Parameters.Add(parametroTamCalca);
            comando.Parameters.Add(parametroTamCalcado);
            comando.Parameters.Add(parametroTamCamisa);
            comando.Parameters.Add(parametroDormitorio);
            comando.Parameters.Add(parametroDeficiente);
            comando.Parameters.Add(parametroHobby);
            comando.Parameters.Add(parametroHistoricoVida);

            comando.Parameters.Add(parametroNomePai);
            comando.Parameters.Add(parametroPaiVivo);
            comando.Parameters.Add(parametroNomeMae);
            comando.Parameters.Add(parametroMaeViva);
            comando.Parameters.Add(parametroCPFPai);
            comando.Parameters.Add(parametroCPFMae);
            comando.Parameters.Add(parametroRGPai);
            comando.Parameters.Add(parametroRGMae);
            comando.Parameters.Add(parametroTelefonePai);
            comando.Parameters.Add(parametroTelefoneMae);
            comando.Parameters.Add(parametroQtdIrmaos);
            comando.Parameters.Add(parametroNomeResponsavel);
            comando.Parameters.Add(parametroCPFResponsavel);
            comando.Parameters.Add(parametroCodigoContatoResponsavel);

            comando.ExecuteNonQuery();

            return objAssistido;

        }
        public Escolar Salvar(Escolar objEscolar)
        {
            SqlCommand comando = new SqlCommand();
            comando.Connection = base.Conectar();

            //Salva os dados de Contato do Escolar
            ContatoDados objContatoDados = new ContatoDados();
            objEscolar.Contato = objContatoDados.Salvar(objEscolar.Contato);

            objEscolar.Contato_CodigoContato = objEscolar.Contato.CodigoContato;

            if (!objEscolar.CodigoEscolar.HasValue)
            {
                comando.CommandText =
                    @"INSERT INTO Escolar (CodigoAssistido, CodigoContato, Instituicao, NumInscricaoInstituicao, 
                                  MediaEscola, GrauEscolaridade, SerieCursada, DataMatricula, DataSaida, StatusSerie)
                    VALUES (@assistido_CodigoAssistido, @contato_CodigoContato, @instituicao, @numInscricaoInstituicao, @mediaEscola,
                            @grauEscolaridade, @serieCursada, @dataMatricula, @dataSaida, @statusSerie)";
            }
            else
            {
                comando.CommandText =
                    @"UPDATE Escolar SET CodigoAssistido = @assistido_CodigoAssistido, 
                             CodigoContato = @contato_CodigoContato, Instituicao = @instituicao,
                             NumInscricaoInstituicao = @numInscricaoInstituicao, MediaEscola = @mediaEscola, 
                             GrauEscolaridade = @grauEscolaridade, SerieCursada = @serieCursada, DataMatricula = @dataMatricula,
                             DataSaida  = @dataSaida, StatusSerie = @statusSerie where CodigoEscolar = @codigoEscolar";
            }

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

            SqlParameter parametroAssistido_CodigoAssistido = new SqlParameter();
            if (objEscolar.Assistido_CodigoAssistido.HasValue)
            {
                parametroAssistido_CodigoAssistido.Value = objEscolar.Assistido_CodigoAssistido.Value;
                parametroAssistido_CodigoAssistido.ParameterName = "@assistido_CodigoAssistido";
                parametroAssistido_CodigoAssistido.DbType = System.Data.DbType.Int32;
            }
            else
            {
                parametroAssistido_CodigoAssistido.Value = DBNull.Value;
                parametroAssistido_CodigoAssistido.ParameterName = "@assistido_CodigoAssistido";
                parametroAssistido_CodigoAssistido.DbType = System.Data.DbType.Int32;
            }

            SqlParameter parametroContato_CodigoContato = new SqlParameter();
            if (objEscolar.Contato_CodigoContato.HasValue)
            {
                parametroContato_CodigoContato.Value = objEscolar.Contato.CodigoContato.Value;
                parametroContato_CodigoContato.ParameterName = "@contato_CodigoContato";
                parametroContato_CodigoContato.DbType = System.Data.DbType.Int32;
            }
            else
            {
                parametroContato_CodigoContato.Value = DBNull.Value;
                parametroContato_CodigoContato.ParameterName = "@contato_CodigoContato";
                parametroContato_CodigoContato.DbType = System.Data.DbType.Int32;
            }

            SqlParameter parametroInstituicao = new SqlParameter("@instituicao", objEscolar.Instituicao);
            parametroInstituicao.DbType = System.Data.DbType.String;

            SqlParameter parametroNumInscricaoInstituicao = new SqlParameter("@numInscricaoInstituicao", objEscolar.NumInscricaoInstituicao);
            parametroNumInscricaoInstituicao.DbType = System.Data.DbType.String;

            SqlParameter parametroMediaEscola = new SqlParameter("@mediaEscola", objEscolar.MediaEscola);
            parametroMediaEscola.DbType = System.Data.DbType.Decimal;

            SqlParameter parametroGrauEscolaridade = new SqlParameter("@grauEscolaridade", objEscolar.GrauEscolaridade);
            parametroGrauEscolaridade.DbType = System.Data.DbType.String;

            SqlParameter parametroSerieCursada = new SqlParameter("@serieCursada", objEscolar.SerieCursada);
            parametroSerieCursada.DbType = System.Data.DbType.String;

            SqlParameter parametroDataMatricula = new SqlParameter("@dataMatricula", objEscolar.DataMatricula);
            parametroDataMatricula.DbType = System.Data.DbType.DateTime;

            SqlParameter parametroDataSaida = new SqlParameter("@dataSaida", objEscolar.DataSaida);
            if (objEscolar.DataSaida.HasValue)
                parametroDataSaida.Value = objEscolar.DataSaida;
            else
                parametroDataSaida.Value = DBNull.Value;

            SqlParameter parametroStatusSerie = new SqlParameter("@statusSerie", objEscolar.StatusSerie);
            parametroStatusSerie.DbType = System.Data.DbType.String;

            comando.Parameters.Add(parametroAssistido_CodigoAssistido);
            comando.Parameters.Add(parametroContato_CodigoContato);
            comando.Parameters.Add(parametroInstituicao);
            comando.Parameters.Add(parametroNumInscricaoInstituicao);
            comando.Parameters.Add(parametroMediaEscola);
            comando.Parameters.Add(parametroGrauEscolaridade);
            comando.Parameters.Add(parametroSerieCursada);
            comando.Parameters.Add(parametroDataMatricula);
            comando.Parameters.Add(parametroDataSaida);
            comando.Parameters.Add(parametroStatusSerie);

            comando.ExecuteNonQuery();

            if (!objEscolar.CodigoEscolar.HasValue)
            {
                return ObterUltima();
            }
            else
            {
                return Obter(objEscolar.CodigoEscolar.Value);
            }

        }
        public Pessoa Salvar(Pessoa objPessoa)
        {
            SqlCommand comando = new SqlCommand();
            comando.Connection = base.Conectar();
            comando.CommandType = System.Data.CommandType.Text;

            if (!objPessoa.CodigoPessoa.HasValue)
            {
                comando.CommandText =
                    @"INSERT INTO Pessoa
                         (CodigoContato, CodigoCasaLar, Nome, Sexo, CPF, RG, TituloEleitor, DataNascimento, Nacionalidade, Naturalidade, Foto, TipoPessoa, ativo)
                         VALUES        (@contato_CodigoContato, @codigoCasaLar, @nome, @sexo, @cpf, @rg, @tituloEleitor, @dataNascimento, @nacionalidade, @naturalidade, 
                                        @foto, @tipoPessoa, @ativo)";
            }
            else
            {
                comando.CommandText =
                    @"UPDATE Pessoa
                         SET CodigoContato = @contato_CodigoContato, CodigoCasaLar = @codigoCasaLar, Nome = @nome, Sexo = @sexo, CPF = @cpf, 
                         RG = @rg, TituloEleitor = @tituloEleitor, DataNascimento = @dataNascimento, Nacionalidade = @nacionalidade, Naturalidade = @naturalidade, 
                         Foto = @foto, TipoPessoa = @tipoPessoa, Ativo = @ativo
                      WHERE CodigoPessoa = @codigoPessoa";
            }

            if (objPessoa.CodigoPessoa.HasValue)
            {
                SqlParameter parametroCodigo = new SqlParameter("@codigoPessoa", objPessoa.CodigoPessoa.Value);
                parametroCodigo.DbType = System.Data.DbType.Int32;
                comando.Parameters.Add(parametroCodigo);
            }

            //Salva o Contato
            SqlParameter parametroContato_CodigoContato = new SqlParameter("@contato_CodigoContato", System.Data.DbType.Int32);
            if (objPessoa.Contato_CodigoContato.HasValue)
            {
                parametroContato_CodigoContato.Value = objPessoa.Contato_CodigoContato.Value;
            }
            else
            {
                //Caso possua entidade Contato possua valor Cadastra
                if (objPessoa.Contato != null)
                {
                    ContatoDados objContatoDados = new ContatoDados();
                    objPessoa.Contato = objContatoDados.Salvar(objPessoa.Contato);
                    parametroContato_CodigoContato.Value = objPessoa.Contato.CodigoContato.Value;
                }
                //Caso não possua entidade Contato possua valor não Cadastra
                else
                {
                    parametroContato_CodigoContato.Value = DBNull.Value;
                }
            }

            SqlParameter parametroCodigoCasaLar = new SqlParameter("@codigoCasaLar", System.Data.DbType.Int32);
            parametroCodigoCasaLar.Value = objPessoa.CodigoCasaLar.Value;

            SqlParameter parametroNome = new SqlParameter("@nome", objPessoa.Nome);
            parametroNome.DbType = System.Data.DbType.String;

            SqlParameter parametroSexo = new SqlParameter("@sexo", objPessoa.Sexo);
            parametroSexo.DbType = System.Data.DbType.String;

            SqlParameter parametroCPF = new SqlParameter("@cpf", objPessoa.CPF);
            parametroCPF.DbType = System.Data.DbType.String;

            SqlParameter parametroRG = new SqlParameter("@rg", objPessoa.RG);
            parametroRG.DbType = System.Data.DbType.String;

            SqlParameter parametroTituloEleitor = new SqlParameter("@tituloEleitor", System.Data.DbType.String);
            if (!String.IsNullOrEmpty(objPessoa.TituloEleitor))
                parametroTituloEleitor.Value = objPessoa.TituloEleitor;
            else
                parametroTituloEleitor.Value = DBNull.Value;

            SqlParameter parametroDataNascimento = new SqlParameter("@dataNascimento", objPessoa.DataNascimento);
            parametroDataNascimento.DbType = System.Data.DbType.DateTime;

            SqlParameter parametroNacionalidade = new SqlParameter("@nacionalidade", objPessoa.Nacionalidade);
            parametroNacionalidade.DbType = System.Data.DbType.String;

            SqlParameter parametroNaturalidade = new SqlParameter("@naturalidade", objPessoa.Naturalidade);
            parametroNaturalidade.DbType = System.Data.DbType.String;

            //TODO: Maycon armazenar foto
            SqlParameter parametroFoto = new SqlParameter("@foto", System.Data.SqlDbType.Image);
            if (!String.IsNullOrEmpty(objPessoa.Foto))
                parametroFoto.Value = objPessoa.Foto;
            else
                parametroFoto.Value = DBNull.Value;

            SqlParameter parametroTipoPessoa = new SqlParameter("@tipoPessoa", objPessoa.TipoPessoa);
            parametroTipoPessoa.DbType = System.Data.DbType.String;

            SqlParameter parametroAtivo = new SqlParameter("@ativo", System.Data.DbType.String);
            if (objPessoa.Ativo.HasValue)
                parametroAtivo.Value = objPessoa.Ativo.Value;
            else
                parametroAtivo.Value = true;

            comando.Parameters.Add(parametroContato_CodigoContato);
            comando.Parameters.Add(parametroCodigoCasaLar);
            comando.Parameters.Add(parametroNome);
            comando.Parameters.Add(parametroSexo);
            comando.Parameters.Add(parametroCPF);
            comando.Parameters.Add(parametroRG);
            comando.Parameters.Add(parametroTituloEleitor);
            comando.Parameters.Add(parametroDataNascimento);
            comando.Parameters.Add(parametroNaturalidade);
            comando.Parameters.Add(parametroNacionalidade);
            comando.Parameters.Add(parametroFoto);
            comando.Parameters.Add(parametroTipoPessoa);
            comando.Parameters.Add(parametroAtivo);

            comando.ExecuteNonQuery();

            if (!objPessoa.CodigoPessoa.HasValue)
            {
                Pessoa objPessoaInserida = this.ObterUltima();
                objPessoa.CodigoPessoa = objPessoaInserida.CodigoPessoa;
                return objPessoa;
                //return this.ObterUltimaPessoaInserida();
            }
            else
            {
                return objPessoa;
            }
        }
        public CasaLar Salvar(CasaLar objCasaLar)
        {
            SqlCommand comando = new SqlCommand();
            comando.Connection = base.Conectar();

            ContatoDados objContatoDados = new ContatoDados();
            objCasaLar.Contato = objContatoDados.Salvar(objCasaLar.Contato); 
            
            if (!objCasaLar.CodigoCasaLar.HasValue)
            {
                comando.CommandText =
                    @"INSERT INTO CasaLar (CodigoContato, NomeCasaLar, CNPJ, Alvara, DataFundacao, Historia, Gestor, Status,
                           QtdMaximaAssistidos, QtdAssistidos, Foto, EmailGestor, TelefoneGestor)
                    VALUES (@contato_CodigoContato, @nomeCasaLar, @cnpj, @alvara, @dataFundacao, @historia, @gestor, @statusCasaLar, 
                            @qtdMaxAssistidos, @qtdAssistidos, @foto, @emailGestor, @telefoneGestor)";
            }
            else
            {
                comando.CommandText =
                    @"UPDATE CasaLar SET CodigoContato = @contato_CodigoContato, NomeCasaLar = @nomeCasaLar, CNPJ = @cnpj,
                        Alvara = @alvara, DataFundacao = @dataFundacao, Historia = @historia, Gestor = @gestor, 
                        Status = @statusCasaLar, QtdMaximaAssistidos = @qtdMaxAssistidos, QtdAssistidos = @qtdAssistidos,
                        Foto = @foto, EmailGestor = @emailGestor, TelefoneGestor = @telefoneGestor
                        WHERE (CodigoCasaLar = @codigoCasaLar)";
            }

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

            SqlParameter parametroContato_CodigoContato = new SqlParameter();
            if (objCasaLar.Contato.CodigoContato.HasValue)
            {
                parametroContato_CodigoContato.Value = objCasaLar.Contato.CodigoContato.Value;
                parametroContato_CodigoContato.ParameterName = "@contato_CodigoContato";
                parametroContato_CodigoContato.DbType = System.Data.DbType.Int32;
            }
            else
            {
                parametroContato_CodigoContato.Value = DBNull.Value;
                parametroContato_CodigoContato.ParameterName = "@contato_CodigoContato";
                parametroContato_CodigoContato.DbType = System.Data.DbType.Int32;
            }

            SqlParameter parametroNomeCasaLar = new SqlParameter("@nomeCasaLar", objCasaLar.NomeCasaLar);
            parametroNomeCasaLar.DbType = System.Data.DbType.String;

            SqlParameter parametroCNPJ = new SqlParameter("@cnpj", objCasaLar.CNPJ);
            parametroCNPJ.DbType = System.Data.DbType.String;

            SqlParameter parametroAlvara = new SqlParameter("@alvara", objCasaLar.Alvara);
            parametroAlvara.DbType = System.Data.DbType.String;

            SqlParameter parametroDataFundacao = new SqlParameter("@dataFundacao", objCasaLar.DataFundacao);
            parametroDataFundacao.DbType = System.Data.DbType.DateTime;

            SqlParameter parametroHistoria = new SqlParameter("@historia", objCasaLar.Historia);
            parametroHistoria.DbType = System.Data.DbType.String;

            SqlParameter parametroGestor = new SqlParameter("@gestor", objCasaLar.Gestor);
            parametroGestor.DbType = System.Data.DbType.String;

            SqlParameter parametroStatusCasaLar = new SqlParameter("@statusCasaLar", objCasaLar.StatusCasaLar);
            parametroStatusCasaLar.DbType = System.Data.DbType.String;

            SqlParameter parametroQtdMaxAssistidos = new SqlParameter("@qtdMaxAssistidos", objCasaLar.QtdMaxAssistidos);
            parametroQtdMaxAssistidos.DbType = System.Data.DbType.Int32;

            SqlParameter parametroQtdAssistidos = new SqlParameter("@qtdAssistidos", objCasaLar.QtdAssistidos);
            parametroQtdAssistidos.DbType = System.Data.DbType.Int32;

            
            SqlParameter parametroFoto = new SqlParameter("@foto", System.Data.SqlDbType.Image);
            if (!String.IsNullOrEmpty(objCasaLar.Foto))
                parametroFoto.Value = objCasaLar.Foto;
            else
                parametroFoto.Value = DBNull.Value;

            SqlParameter parametroEmailGestor = new SqlParameter("@emailGestor", objCasaLar.EmailGestor);
            parametroEmailGestor.DbType = System.Data.DbType.String;

            SqlParameter parametroTelefoneGestor = new SqlParameter("@telefoneGestor", objCasaLar.TelefoneGestor);
            parametroTelefoneGestor.DbType = System.Data.DbType.String;



            comando.Parameters.Add(parametroContato_CodigoContato);
            comando.Parameters.Add(parametroNomeCasaLar);
            comando.Parameters.Add(parametroCNPJ);
            comando.Parameters.Add(parametroAlvara);
            comando.Parameters.Add(parametroDataFundacao);
            comando.Parameters.Add(parametroHistoria);
            comando.Parameters.Add(parametroGestor);
            comando.Parameters.Add(parametroStatusCasaLar);
            comando.Parameters.Add(parametroQtdMaxAssistidos);
            comando.Parameters.Add(parametroQtdAssistidos);
            comando.Parameters.Add(parametroFoto);
            comando.Parameters.Add(parametroEmailGestor);
            comando.Parameters.Add(parametroTelefoneGestor);

            comando.ExecuteNonQuery();

            //TODO: retorno entidade CasaLar com o Código da casaLAr Preenchido
            return ObterUltima();
        }