public Int64 MantenimientoReferenciaBancaria(EnReferenciaBancaria objEnRefBancaria, Int16 intControlador)
        {
            log4net.ILog logger = log4net.LogManager.GetLogger("File");
            Int64 intCodReferenciaBancaria;
            try
            {DaReferenciaBancaria objReferenciaBancaria = new DaReferenciaBancaria();
                intCodReferenciaBancaria=objReferenciaBancaria.MantenimientoReferenciaBancaria(objEnRefBancaria,intControlador);

                 }
            catch (Exception ex)
            {
                intCodReferenciaBancaria = 0;
                logger.Error("Error " + ex.Message + "Metodo :MantenimientoReferenciaBancaria  Flag :" + intControlador.ToString());

            }

               return intCodReferenciaBancaria;
        }
        public Int64 MantenimientoReferenciaBancaria(EnReferenciaBancaria objEnRefBancaria, Int16 intControlador)
        {
            Int64 intCodReferenciaBancaria;

                Database db = DatabaseFactory.CreateDatabase();
                SqlCommand cmd = (SqlCommand)db.GetStoredProcCommand("sp_MantenimientoReferenciaBancaria");
                cmd.CommandTimeout = Convert.ToInt32(DuracionConexion.corta);
                Helper.AddParam(ref cmd, "@nombre", SqlDbType.VarChar, 255, ParameterDirection.Input, objEnRefBancaria.Banco1);
                Helper.AddParam(ref cmd, "@tipoCuenta", SqlDbType.VarChar, 255, ParameterDirection.Input, objEnRefBancaria.Cuenta1);
                Helper.AddParam(ref cmd, "@sucursal", SqlDbType.VarChar, 255, ParameterDirection.Input, objEnRefBancaria.Sucursal1);
                Helper.AddParam(ref cmd, "@sectorista", SqlDbType.VarChar, 255, ParameterDirection.Input, objEnRefBancaria.Sectorista1);
                Helper.AddParam(ref cmd, "@FQ_Solicitud_ID", SqlDbType.Int, ParameterDirection.Input, objEnRefBancaria.SolCodSolicitud);
                Helper.AddParam(ref cmd, "@FQ_ReferenciaBancaria_ID", SqlDbType.Int, ParameterDirection.Input, objEnRefBancaria.FQ_ReferenciaBancaria_ID);
                Helper.AddParam(ref cmd, "@controlador", SqlDbType.Int, ParameterDirection.Input, intControlador);
                cmd.Parameters.Add("@num", SqlDbType.Int).Direction = ParameterDirection.Output;
                db.ExecuteNonQuery(cmd);
                //cmd.Parameters.Clear();

                intCodReferenciaBancaria = Convert.ToInt64(cmd.Parameters["@num"].Value);

            return intCodReferenciaBancaria;
        }
        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                EnSolicitud objSolicitud = new EnSolicitud();
                objSolicitud.SolNombre = txtNombre.Text.Trim();
                //objSolicitud.SolEdad = txtEdadN.Text.Trim();
                objSolicitud.SolDomicilio = txtDomicilio.Text.Trim();
                objSolicitud.SolNacionalidad = txtNacionalidad.Text.Trim();
                objSolicitud.SolPasaporte = txtPasaporte.Text.Trim();
                objSolicitud.SolTelefono = txtTelefono.Text.Trim();
                objSolicitud.SolEmail = txtEmail.Text.Trim();

                objSolicitud.SolCodCandidato = Int64.Parse(Request.QueryString["id"]);

                if (hdnAccion.Value == "N")
                {
                    objSolicitud.SolCodSolicitud = 0;
                }
                if (hdnAccion.Value == "M")
                {
                    objSolicitud.SolCodSolicitud = Int64.Parse(hdnCodSol.Value);
                }

                objSolicitud.SolCodigo = txtcodigosol.Text.Trim();
                objSolicitud.Solresumen = txtresumen.Text.Trim();
                objSolicitud.SolDescripcion = txtDescripcionSol.Text.Trim();
                objSolicitud.SolEstados = "PENDIENTE";

                List<EnReferenciaLaboral> lstReferenciaLaboral = new List<EnReferenciaLaboral>();
                EnReferenciaLaboral objEnReferenciaLaboral = new EnReferenciaLaboral();

                if (hdnAccion.Value == "N")
                {
                    objEnReferenciaLaboral.FQ_ReferenciaLaboral_ID = 0;
                }
                if (hdnAccion.Value == "M")
                {
                    objEnReferenciaLaboral.FQ_ReferenciaLaboral_ID = Int64.Parse(hdnRefLaboral.Value);
                }
                objEnReferenciaLaboral.EmpresaTi = txtEmpresaTi.Text.Trim();
                objEnReferenciaLaboral.CargoTi = txtCargoTi.Text.Trim();
                objEnReferenciaLaboral.FechaInicio = DateTime.Parse(txtTiempoServTi.Text.Trim());
                objEnReferenciaLaboral.FechaFin = DateTime.Parse(txtFechaFin.Text.Trim());

                objEnReferenciaLaboral.SueldoTi = txtSueldoTi.Text.Trim();
                objEnReferenciaLaboral.DireccionTi = txtDireccionTi.Text.Trim();
                objEnReferenciaLaboral.TelefonoTi = txtTelefonoTi.Text.Trim();
                objEnReferenciaLaboral.EmailTi = txtEmailTi.Text.Trim();
                //lstReferenciaLaboral.Add(objEnReferenciaLaboral);
                //EnReferenciaLaboral objEnReferenciaLaboralB = new EnReferenciaLaboral();
                //objEnReferenciaLaboralB.EmpresaCony = txtEmpresaCony.Text.Trim();
                //objEnReferenciaLaboralB.CargoCony = txtCargoCony.Text.Trim();
                //objEnReferenciaLaboralB.TiempoCony = txtTiempoServCony.Text.Trim();
                //objEnReferenciaLaboralB.SueldoCony = txtSueldoCony.Text.Trim();
                //objEnReferenciaLaboralB.DireccionCony = txtDireccionCony.Text.Trim();
                //objEnReferenciaLaboralB.TelefonoCony = txtTelefonoCony.Text.Trim();
                //objEnReferenciaLaboralB.EmailCony = txtEmailCony.Text.Trim();
                //lstReferenciaLaboral.Add(objEnReferenciaLaboralB);

                List<EnReferenciaBancaria> lstReferenciaBancaria = new List<EnReferenciaBancaria>();

                EnReferenciaBancaria objEnReferenciaBancaria = new EnReferenciaBancaria();

                if (hdnAccion.Value == "N")
                {
                    objEnReferenciaBancaria.FQ_ReferenciaBancaria_ID = 0;
                }
                if (hdnAccion.Value == "M")
                {
                    objEnReferenciaBancaria.FQ_ReferenciaBancaria_ID = Int64.Parse(hdnRefBancaria1.Value);
                }
                objEnReferenciaBancaria.Banco1 = txtBanco1.Text.Trim();
                objEnReferenciaBancaria.Sucursal1 = txtSucursal1.Text.Trim();
                objEnReferenciaBancaria.Sectorista1 = txtSectorista1.Text.Trim();
                objEnReferenciaBancaria.Cuenta1 = txtCuenta1.Text.Trim();
                lstReferenciaBancaria.Add(objEnReferenciaBancaria);

                EnReferenciaBancaria objEnReferenciaBancariaB = new EnReferenciaBancaria();
                objEnReferenciaBancariaB.Banco1 = txtBanco2.Text.Trim();
                objEnReferenciaBancariaB.Sucursal1 = txtSucursal2.Text.Trim();
                objEnReferenciaBancariaB.Sectorista1 = txtSectorista2.Text.Trim();
                objEnReferenciaBancariaB.Cuenta1 = txtCuenta2.Text.Trim();

                if (hdnAccion.Value == "N")
                {
                    objEnReferenciaBancariaB.FQ_ReferenciaBancaria_ID = 0;
                }
                if (hdnAccion.Value == "M")
                {
                    if (txtBanco2.Text != "")
                    {
                        objEnReferenciaBancariaB.FQ_ReferenciaBancaria_ID = Int64.Parse(hdnRefBancaria2.Value);
                    }
                    else
                    {
                        objEnReferenciaBancariaB.FQ_ReferenciaBancaria_ID = 0;
                    }
                }
                lstReferenciaBancaria.Add(objEnReferenciaBancariaB);

                EnInformacionPatrimonial objInformacionPatrimonial = new EnInformacionPatrimonial();
                objInformacionPatrimonial.InfPatCuenta = Funciones.ObtenerCero(txtCtasBancarias.Text.Trim());
                objInformacionPatrimonial.InfPatAcciones = Funciones.ObtenerCero(txtAcciones.Text.Trim());
                objInformacionPatrimonial.InfPatInmuebles = Funciones.ObtenerCero(txtInmuebles.Text.Trim());
                objInformacionPatrimonial.InfPatVehiculos = Funciones.ObtenerCero(txtVehiculos.Text.Trim());
                objInformacionPatrimonial.InfPatHipotecas = Funciones.ObtenerCero(txtHipotecas.Text.Trim());
                objInformacionPatrimonial.InfPatCredito = Funciones.ObtenerCero(txtCreditos.Text.Trim());
                objInformacionPatrimonial.InfPatPrestamos = Funciones.ObtenerCero(txtPrestamos.Text.Trim());
                objInformacionPatrimonial.InfPatCuentaPagar = Funciones.ObtenerCero(txtCtasPorPagar.Text.Trim());
                objInformacionPatrimonial.InfPatOtros1 = Funciones.ObtenerCero(txtOtros1.Text.Trim());
                objInformacionPatrimonial.InfPatOtros2 = Funciones.ObtenerCero(txtOtros2.Text.Trim());

                if (hdnAccion.Value == "N")
                {
                    objInformacionPatrimonial.FQ_InformacionPatrimonialNeg_ID = 0;
                    objInformacionPatrimonial.FQ_InformacionPatrimonialPos_ID = 0;
                }
                if (hdnAccion.Value == "M")
                {
                    objInformacionPatrimonial.FQ_InformacionPatrimonialNeg_ID = Int64.Parse(hdnInfPatNeg.Value);
                    objInformacionPatrimonial.FQ_InformacionPatrimonialPos_ID = Int64.Parse(hdnInfPatPos.Value);
                }

                List<EnReferenciaComercial> lstReferenciaComercial = new List<EnReferenciaComercial>();
                EnReferenciaComercial objReferenciaComercialA = new EnReferenciaComercial();
                objReferenciaComercialA.RefEmpresa1 = txtEmpresa1.Text.Trim();
                objReferenciaComercialA.RefDireccion1 = txtDireccion1.Text.Trim();
                if (hdnAccion.Value == "N")
                {
                    objReferenciaComercialA.FQ_ReferenciaComercial_ID = 0;
                }
                if (hdnAccion.Value == "M")
                {

                    if (txtEmpresa1.Text != "")
                    {
                        objReferenciaComercialA.FQ_ReferenciaComercial_ID = Int64.Parse(hdnRefCom1.Value);
                    }
                    else
                    {
                        objReferenciaComercialA.FQ_ReferenciaComercial_ID = 0;
                    }
                }
                lstReferenciaComercial.Add(objReferenciaComercialA);

                EnReferenciaComercial objReferenciaComercialB = new EnReferenciaComercial();
                objReferenciaComercialB.RefEmpresa1 = txtEmpresa2.Text.Trim();
                objReferenciaComercialB.RefDireccion1 = txtDireccion2.Text.Trim();
                if (hdnAccion.Value == "N")
                {
                    objReferenciaComercialB.FQ_ReferenciaComercial_ID = 0;
                }
                if (hdnAccion.Value == "M")
                {
                    if (txtEmpresa2.Text != "")
                    {
                        objReferenciaComercialB.FQ_ReferenciaComercial_ID = Int64.Parse(hdnRefCom2.Value);
                    }
                    else
                    {
                        objReferenciaComercialB.FQ_ReferenciaComercial_ID = 0;
                    }

                }
                lstReferenciaComercial.Add(objReferenciaComercialB);

                EnReferenciaComercial objReferenciaComercialC = new EnReferenciaComercial();
                objReferenciaComercialC.RefEmpresa1 = txtEmpresa3.Text.Trim();
                objReferenciaComercialC.RefDireccion1 = txtDireccion3.Text.Trim();
                if (hdnAccion.Value == "N")
                {
                    objReferenciaComercialC.FQ_ReferenciaComercial_ID = 0;
                }
                if (hdnAccion.Value == "M")
                {
                    if (txtEmpresa3.Text != "")
                    {
                        objReferenciaComercialC.FQ_ReferenciaComercial_ID = Int64.Parse(hdnRefCom3.Value);
                    }
                    else
                    {
                        objReferenciaComercialC.FQ_ReferenciaComercial_ID = 0;
                    }
                }
                lstReferenciaComercial.Add(objReferenciaComercialC);

                if (validar(objSolicitud, objEnReferenciaLaboral, lstReferenciaBancaria, objInformacionPatrimonial, objReferenciaComercialA) == true)
                {
                    NeSolicitud objNeSolicitud = new NeSolicitud();

                    if (hdnAccion.Value == "N")
                    {
                        objNeSolicitud.MantenimientoSolicitud(objSolicitud, objEnReferenciaLaboral, lstReferenciaBancaria, objInformacionPatrimonial, lstReferenciaComercial, 1);
                        MsgBox1.ShowMessage("Registro realizado");
                    }
                    if (hdnAccion.Value == "M")
                    {
                        objNeSolicitud.MantenimientoSolicitud(objSolicitud, objEnReferenciaLaboral, lstReferenciaBancaria, objInformacionPatrimonial, lstReferenciaComercial, 2);
                        MsgBox1.ShowMessage("Modificacion realizada.");
                    }

                    limpiar();

                }
            }
            catch (Exception ex)
            {
                logger.Error("Error " + ex.Message + "Metodo :Grabar");

            }
        }
        public void MantenimientoSolicitud(EnSolicitud objEnSolicitud, EnReferenciaLaboral objEnReferenciaLaboral, List<EnReferenciaBancaria> lstReferenciaBancaria, EnInformacionPatrimonial objInformacionPatrimonial, List<EnReferenciaComercial> lstReferenciComercial, Int16 intControlador)
        {
            log4net.ILog logger=log4net.LogManager.GetLogger("File");

            try
            {
                using (TransactionScope tx = new TransactionScope())
                {
                    Int64 intCodSolicitud;

                    intCodSolicitud=(new DaSolicitud()).MantenimientoSolicitud(objEnSolicitud, intControlador);
                    if (intControlador==2)
                    {
                        intCodSolicitud = objEnSolicitud.SolCodSolicitud;
                    }
                    objEnReferenciaLaboral.SolCodSolicitud = intCodSolicitud;

                     Int64 intLaboral;
                     intLaboral = (new NeReferenciaLaboral()).MantenimientoReferenciaLaboral(objEnReferenciaLaboral, intControlador);

                    for (int i = 0; i < lstReferenciaBancaria.Count; i++)
                    {
                        EnReferenciaBancaria objEnReferenciaBancaria = new EnReferenciaBancaria();
                        objEnReferenciaBancaria.SolCodSolicitud = intCodSolicitud;
                        if (lstReferenciaBancaria[i].Banco1 == null)
                        {
                            break;
                        }
                        if (lstReferenciaBancaria[i].Banco1.Trim() == "")
                        {
                            break;
                        }
                        Int64 intBanco;
                        objEnReferenciaBancaria.Banco1 = lstReferenciaBancaria[i].Banco1;
                        objEnReferenciaBancaria.Sucursal1 = lstReferenciaBancaria[i].Sucursal1;
                        objEnReferenciaBancaria.Sectorista1 = lstReferenciaBancaria[i].Sectorista1;
                        objEnReferenciaBancaria.Cuenta1 = lstReferenciaBancaria[i].Cuenta1;
                        intBanco = (new NeReferenciaBancaria()).MantenimientoReferenciaBancaria(objEnReferenciaBancaria, intControlador);
                        objEnReferenciaBancaria = null;
                    }

                    Int64 intCodIng;
                    Int64 intCodPos;

                    objInformacionPatrimonial.SolCodSolicitud = intCodSolicitud;
                    intCodIng = (new NeInformacionPatrimonial()).MantenimientoInformacionPatrimonial(objInformacionPatrimonial, intControlador);

                    intCodPos = (new NeInformacionPatrimonial()).MantenimientoInformacionPatrimonialPos(objInformacionPatrimonial, intControlador);

                    for (int i = 0; i < lstReferenciComercial.Count; i++)
                    {
                        EnReferenciaComercial objEnReferenciaComercial = new EnReferenciaComercial();
                        objEnReferenciaComercial.FQ_SOLICITUD_ID = intCodSolicitud;
                        if (lstReferenciComercial[i].RefEmpresa1==null)
                        {
                            break;
                        }
                        if (lstReferenciComercial[i].RefEmpresa1.Trim()== "")
                        {
                            break;
                        }
                        objEnReferenciaComercial.RefDireccion1 = lstReferenciComercial[i].RefDireccion1.Trim();
                        objEnReferenciaComercial.RefEmpresa1 = lstReferenciComercial[i].RefEmpresa1.Trim();
                        intCodPos = (new NeReferenciaComercial()).MantenimientoReferenciaComercial(objEnReferenciaComercial, intControlador);

                    }

                    tx.Complete();
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error " + ex.Message + "Metodo :MantenimientoSolicitud  " );
                //throw ex;
            }
        }