예제 #1
0
        public ActionResult DocumentoRegistrados()
        {
            /*es caso de que use  reintentar en el navegador de hara este proceso de inicio se borrara todos los documentos guardados en el almacenamiento temporal de  DocuemtosDAO  */
            documentoDAO.BorrartodolosDocumentos();
            /*se creara una lista de personas y se extraera con lo que sea almacendado en PersonaDAO*/
            List <Personas> personas = new PersonaDAO().GetPersonas();

            /* se a  mostrar en foreach el objecto Persona que esta en la lista personas y se usara dentro del objecto la variable Rut por que es  una variable de clave primaria*/
            foreach (var item in personas)
            {
                Personas person = new Personas();
                person.Rut = item.Rut;

                /* se hara  un segundo foreach pero ahora con base de datos de el objecto Registro que se extraera los datos  de Fk_Id_Documento y Fk_Rut  y
                 * sera  almacenados en el objecto Registro con el nombre R */
                foreach (var items in db.Registro)
                {
                    Registro R = new Registro();
                    R.Fk_Id_Documento = items.Fk_Id_Documento;
                    R.Fk_RUT          = items.Fk_RUT;

                    /* si la variable  de la clave primaria Rut es  igual a la clave foranea Fk_RUT entonces se  guardara en el almacenamiento de temporal de RegistroDAO
                     * sino se  pasara de largo hasta que la clave primaria Rut sea igual a la clave foranea Fk_RUT  */
                    if (person.Rut.Equals(R.Fk_RUT))
                    {
                        registroDAO.guardarRegistro(R);
                    }
                }
            }
            /* se creara una lista de Registros llamada registros que sera extraidos del almacenamieto temporal RegistroDAO  */
            List <Registro> registros = registroDAO.GetRegistros();

            /* si la lista registros esta vacia entonces ira la vista con datos de Documentos Vacios
             * sino se creara un foreach que mostrara los datos de la lista de registro   */
            if (registros.Count != 0)
            {
                foreach (var item in registros)
                {
                    Registro registro = new Registro();
                    registro.Fk_RUT          = item.Fk_RUT;
                    registro.Fk_Id_Documento = item.Fk_Id_Documento;
                    /* se va crear un segundo foreach que mostrara los id de los documentos que son una clave primara de la clase Documentos que estan en la base de datos */
                    foreach (var items in db.Documento)
                    {
                        Documento documento = new Documento();
                        documento.Id_Documento = items.Id_Documento;

                        /* si la clave primaria de los id de los documentos es igual la clave foranea Fk_Id_Documento entoces los demas datos
                         * que estaban la clase Documentos que estan en la base de datos seran guardados en el almacenamieto temporal de DocumentoDAO
                         * y se  borrara todo los datos del almacenamieto temporal RegistrosDAO ademas que  iran a la vista con los datos del DocumentoDAO  */
                        if (documento.Id_Documento == registro.Fk_Id_Documento)
                        {
                            documento.Archivo = items.Archivo;
                            documento.Tamaño  = items.Tamaño;
                            documento.Tipo    = items.Tipo;
                            documento.Fecha   = items.Fecha;
                            documentoDAO.GuaradarDocumento(documento);
                        }
                    }
                }
                registroDAO.BorrarRegistro();
            }

            return(View());
        }