/// <summary>
        /// Ejecuta la llamada al método que actualiza el contrato en la base de datos
        /// </summary>
        private void Editar()
        {
            #region Se inicia la Transaccion
            dctx.SetCurrentProvider("Outsourcing");
            Guid firma = Guid.NewGuid();
            try
            {
                dctx.OpenConnection(firma);
                dctx.BeginTransaction(firma);
            }

            catch (Exception)
            {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
                throw new Exception("Se encontraron inconsistencias al insertar el Contrato.");
            }
            #endregion

            try
            {
                //Se obtiene la información del contrato a partir de la vista
                var bo = (ContratoManttoBO)this.InterfazUsuarioADato();

                //Se crea el objeto de seguridad
                UsuarioBO usuario = new UsuarioBO()
                {
                    Id = this.vista.UsuarioID
                };
                AdscripcionBO adscripcion = new AdscripcionBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativaID
                    }
                };
                SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usuario, adscripcion);

                //Se actualiza en la base de datos
                this.controlador.ActualizarCompleto(dctx, bo, (ContratoManttoBO)this.vista.UltimoObjeto, seguridadBO);

                #region SC0001 BEP1401 - Registra los pagos del Contrato

                if (bo.Estatus == EEstatusContrato.EnCurso)
                {
                    GeneradorPagosManttoBR generadorPagos = new GeneradorPagosManttoBR();
                    generadorPagos.GenerarPagos(dctx, bo, seguridadBO, true);
                }

                dctx.CommitTransaction(firma);
                #endregion
            }catch (Exception ex) {
                dctx.RollbackTransaction(firma);
                throw new Exception(string.Format("{0}.Editar:{1}{2}", nombreClase, Environment.NewLine, ex.Message));
            }
            finally
            {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
            }
        }
        /// <summary>
        /// Registra un Contrato RD
        /// </summary>
        private void Registrar()
        {
            #region Se inicia la Transaccion
            dctx.SetCurrentProvider("Outsourcing");
            Guid firma = Guid.NewGuid();
            try
            {
                dctx.OpenConnection(firma);
                dctx.BeginTransaction(firma);
            }

            catch (Exception)
            {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
                throw new Exception("Se encontraron inconsistencias al insertar el Contrato.");
            }
            #endregion

            try
            {
                //Se obtiene la información a partir de la Interfaz de Usuario
                ContratoManttoBO bo = (ContratoManttoBO)this.InterfazUsuarioADato();

                //Se crea el objeto de seguridad
                UsuarioBO usuario = new UsuarioBO()
                {
                    Id = this.vista.UsuarioID
                };
                AdscripcionBO adscripcion = new AdscripcionBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativaID
                    }
                };
                SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usuario, adscripcion);

                //Se inserta en la base de datos
                this.controlador.InsertarCompleto(this.dctx, bo, seguridadBO);

                //Se consulta lo insertado para recuperar los ID
                DataSet ds = this.controlador.ConsultarSet(this.dctx, bo);
                if (ds.Tables[0].Rows.Count <= 0)
                {
                    throw new Exception("Al consultar lo insertado no se encontraron coincidencias.");
                }
                if (ds.Tables[0].Rows.Count > 1)
                {
                    throw new Exception("Al consultar lo insertado se encontró más de una coincidencia.");
                }

                bo.ContratoID = this.controlador.DataRowToContratoManttoBO(ds.Tables[0].Rows[0]).ContratoID;

                #region SC0001 BEP1401 - Registra los pagos del Contrato
                if (bo.Estatus == EEstatusContrato.EnCurso)
                {
                    GeneradorPagosManttoBR generadorPagos = new GeneradorPagosManttoBR();
                    generadorPagos.GenerarPagos(dctx, bo, seguridadBO, true);
                }

                #endregion

                //Se despliega la información en la Interfaz de Usuario
                this.DatoAInterfazUsuario(bo);

                dctx.CommitTransaction(firma);
            }
            catch (Exception ex)
            {
                dctx.RollbackTransaction(firma);
                throw new Exception(this.nombreClase + ".Registrar:" + ex.Message);
            }
            finally
            {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
            }
        }