private void GuardarNuevo(dtoDocumento aoDto)
        {
            ceDcDocumento loEntidad = new ceDcDocumento(
                aoDto.CodigoTipo
                , aoDto.Numero
                , aoDto.OrganoEmisor
                , aoDto.NombreArchivo
                , aoDto.ContenidoArchivo
                , aoDto.Asunto
                , aoDto.ListaDerivacionDocumento.Select(p => new ceDcDerivacionDocumento(
                                                            loContexto.EstadoDerivacion
                                                            .Where(g => g.IndicadorEstadoDerivacion == EstadoDerivacionDocumento.Derivado)
                                                            .FirstOrDefault().CodigoEstadoDerivacion
                                                            , p.NumeroUnidadOrganica
                                                            , p.NombreUnidadOrganica
                                                            , p.CodigoUsuario
                                                            , p.NombreUsuario
                                                            , p.Justificacion
                                                            , p.IndicadorVisualizar
                                                            , p.IndicadorDescargar
                                                            , new PistaAuditoria(Usuario, DateTime.Now))).ToList()
                , new PistaAuditoria(Usuario, DateTime.Now)
                );

            loContexto.Documento.Add(loEntidad);
        }
        public dtoDocumento ObtenerXCodigo(int aiCodigo)
        {
            return(EjecutarConsulta(() =>
            {
                ceDcDocumento loEntidad = loContexto.Documento
                                          .Include(p => p.TipoDocumentoX)
                                          .Include(p => p.DerivacionDocumentoS)
                                          .Include(p => p.DerivacionDocumentoS.Select(d => d.EstadoDerivacionX))
                                          .SingleOrDefault(x => x.CodigoDocumento == aiCodigo);

                return new dtoDocumento()
                {
                    Codigo = loEntidad.CodigoDocumento,
                    Numero = loEntidad.NumeroDocumento,
                    CodigoTipo = loEntidad.CodigoTipoDocumento,
                    Asunto = loEntidad.DescripcionAsunto,
                    NombreArchivo = loEntidad.NombreDocumento,
                    ContenidoArchivo = loEntidad.DescripcionContenido,
                    OrganoEmisor = loEntidad.DescripcionOrganoEmisor,
                    FechaRegistro = loEntidad.FechaRegistro ?? DateTime.Now,
                    UsuarioRegistro = loEntidad.CodigoUsuarioRegistro,
                    ObjetoTipoDocumento = new dtoTipoDocumento()
                    {
                        Codigo = loEntidad.TipoDocumentoX.CodigoTipoDocumento,
                        Descripcion = loEntidad.TipoDocumentoX.DescripcionTipoDocumento
                    },
                    ListaDerivacionDocumento = loEntidad.DerivacionDocumentoS.Select(d => new dtoDerivacionDocumento()
                    {
                        CodigoDerivacion = d.CodigoDerivacionDocumento,
                        CodigoDocumento = d.CodigoDocumento,
                        CodigoEstado = d.CodigoEstadoDerivacion,
                        CodigoUsuario = d.CodigoUsuario,
                        NombreUsuario = d.NombreUsuario,
                        NumeroUnidadOrganica = d.NumeroUnidadOrganica,
                        NombreUnidadOrganica = d.NombreUnidadOrganica,
                        Justificacion = d.DescripcionJustificacion,
                        IndicadorDescargar = d.IndicadorDescargar,
                        IndicadorVisualizar = d.IndicadorVisualizar,
                        FechaDerivacion = d.FechaRegistro ?? DateTime.Now,
                        FechaAtencion = d.FechaModifico ?? DateTime.Now,
                        FechaDevolucion = d.FechaModifico ?? DateTime.Now,
                        ObjetoEstadoDerivacion = new dtoEstadoDerivacion()
                        {
                            Codigo = d.EstadoDerivacionX.CodigoEstadoDerivacion,
                            Descripcion = d.EstadoDerivacionX.DescripcionEstadoDerivacion,
                            Indicador = d.EstadoDerivacionX.IndicadorEstadoDerivacion
                        }
                    }).ToList()
                };
            }));
        }
        private void GuardarModificado(dtoDocumento aoDto)
        {
            if (aoDto.EstadoObjeto == EstadoObjeto.Modificado)
            {
                ceDcDocumento loEntidad = loContexto.Documento
                                          .Include(p => p.TipoDocumentoX)
                                          .Include(p => p.DerivacionDocumentoS)
                                          .Include(p => p.DerivacionDocumentoS.Select(d => d.EstadoDerivacionX))
                                          .SingleOrDefault(x => x.CodigoDocumento == aoDto.Codigo);

                loEntidad.Editar(
                    aoDto.CodigoTipo,
                    aoDto.Numero,
                    aoDto.OrganoEmisor,
                    aoDto.NombreArchivo,
                    aoDto.ContenidoArchivo,
                    aoDto.Asunto,
                    new PistaAuditoria(Usuario, DateTime.Now)
                    );
            }
        }