public JsonResult GrabarSolicitudRegistro(SolRegModel model)
        {
            if (model.solicitud.codTipSol.GetValueOrDefault() == 1)
            { // SI ES SOA
                var existeUsuario = modelEntity.SAF_SOA.Where(c => c.NOMUSU.Equals(model.soa.nomUsu)).ToList().Any();
                if (existeUsuario)
                {
                    return Json(new MensajeRespuesta("El usuario que intenta registrar ya existe", false));
                }
            }
            else {
                var existeUsuario = modelEntity.SAF_AUDITOR.Where(c => c.NOMUSU.Equals(model.auditor.nomUsu)).ToList().Any();
                if (existeUsuario)
                {
                    return Json(new MensajeRespuesta("El usuario que intenta registrar ya existe", false));
                }
            }
            var entidad = new SolicitudInsActDTO();
            entidad.Solicitud.CODTIPSOL = model.solicitud.codTipSol;
            entidad.Solicitud.ESTSOL = (int)Estado.Solicitud.Elaboracion;
            entidad.Soa.RAZSOCSOA = model.soa.razSocSoa;
            entidad.Soa.RUCSOA = model.soa.rucSoa;
            entidad.Soa.MISSOA = model.soa.misSoa;
            entidad.Soa.VISSOA = model.soa.visSoa;
            entidad.Soa.NOMUSU = model.soa.nomUsu;
            entidad.Soa.PASUSU = model.soa.pasUsu;

            entidad.Auditor.DNIAUD = model.auditor.dniAud;
            entidad.Auditor.SEXAUD = model.auditor.sexAud;
            entidad.Auditor.FECNACAUD = Convert.ToDateTime(model.auditor.fecNacAud);
            entidad.Auditor.NOMAUD = model.auditor.nomAud;
            entidad.Auditor.APEAUD = model.auditor.apeComAud;

            entidad.Auditor.CODDEPAUD = model.auditor.codDeparAud;
            entidad.Auditor.CODPROVAUD = model.auditor.codProvAud;
            entidad.Auditor.CODDISAUD = model.auditor.codDisAud;
            entidad.Auditor.CORAUD = model.auditor.corAud;
            entidad.Auditor.TELAUD = model.auditor.telAud;
            entidad.Auditor.CELAUD = model.auditor.celAud;
            entidad.Auditor.NOMUSU = model.auditor.nomUsu;
            entidad.Auditor.PASUSU = model.auditor.pasUsu;
            var result = _agenteGestionSoaAuditor.GrabarSolicitudRegistro(entidad);
            return Json(result);
        }
        public SolicitudInsActDTO GrabarSolicitud(SolicitudInsActDTO entidad)
        {
            using (TransactionScope tran = new TransactionScope())
            {
                try
                {
                    var solicitud = Mapper.Map<SolicitudDTO, SAF_SOLICITUD>(entidad.Solicitud);

                    if (entidad.Auditor != null) {
                        var auditor = Mapper.Map<AuditorDTO, SAF_AUDITOR>(entidad.Auditor);
                        var resultRegAuditor = this._safAuditorLogic.Registrar(auditor);
                        solicitud.CODAUD = resultRegAuditor.CODAUD;
                        entidad.Auditor.CODAUD = resultRegAuditor.CODAUD;
                    }

                    if (entidad.Soa != null) {
                        var soa = Mapper.Map<SoaDTO, SAF_SOA>(entidad.Soa);
                        var resultRegSoa = this._safSoaLogic.Registrar(soa);
                        solicitud.CODSOA = resultRegSoa.CODSOA;
                        entidad.Soa.CODSOA = resultRegSoa.CODSOA;
                    }

                    var resultRegSolicitud = this._safSolicitudLogic.Registrar(solicitud);
                    tran.Complete();
                    return entidad;
                }
                catch (ExcepcionNegocio)
                {
                    tran.Dispose();
                    throw;
                }
                catch (Exception) {
                    tran.Dispose();
                    throw;
                }
            }
        }