Ejemplo n.º 1
0
        public ActionResult Localizar(FormCollection formCollection)
        {
            /* se crear una lista de personas del archivo temporal Persona DAO  */
            List <Personas> personas = new List <Personas>();
            int             on       = 0;
            int             count    = 0;

            /*en caso que se almaceno alguna persona en PersonaDAO va a ser almacenada en la lista personas  */
            if (new PersonaDAO().GetPersonas().Count != 0)
            {
                personas = new PersonaDAO().GetPersonas();
            }

            /*se toma los datos almacenado en la vista  en variables Strings llamados "Nombre", "Apellido" Y "Rut"   */
            String Nombre   = formCollection["Nombretxt"];
            String Apellido = formCollection["Apellidotxt"];
            String Rut      = formCollection["Ruttxt"];

            /* si el Nombre, o el Rut o el Apellido esten vacios se enviara un mensaje  a la vista */
            if (String.IsNullOrEmpty(Nombre) || String.IsNullOrEmpty(Apellido) || String.IsNullOrEmpty(Rut))
            {
                ViewBag.Message = "Debes ingresar el nombre  o el apellido o el rut";
                return(View());
            }
            /* si no pasara por un foreach que se va a mostrar los datos almacenados en la base de datos persona por persona   */
            else
            {
                foreach (var item in db.Personas)
                {
                    Personas p = new Personas();
                    p.Nombre   = item.Nombre;
                    p.Rut      = item.Rut;
                    p.Apellido = item.Apellido;

                    /*si el nombre del String es igual al Nombre de la base de datos tambien
                     * el Rut del String es igual al Rut de la base de datos y
                     * el Apellido del String es igual al Apellido de la base de datos entonces la  variable on sera 1
                     * tomara los datos  y se creara un segundo objecto de Persona */
                    if (p.Nombre.Equals(Nombre) && p.Rut.Equals(Rut) && p.Apellido.Equals(Apellido))
                    {
                        on = 1;
                        Personas Persona = new Personas();
                        Persona.Nombre   = Nombre;
                        Persona.Rut      = Rut;
                        Persona.Apellido = Apellido;

                        /* Si la lista personas esta vacia entonces el objecto Persona se almacenada,
                         * por que sera la primera vez que sera almacenado en la clase de almacenamiento temporal  PersonaDAO
                         */
                        if (personas.Count == 0)
                        {
                            new PersonaDAO().GuaradarPersona(Persona);
                        }
                        /*Si no entonces ser extraera los datos de la lista personas   */
                        else
                        {
                            for (int k = 0; k < personas.Count(); k++)

                            {
                                Personas personas_guardada = new Personas();
                                personas_guardada.Nombre   = personas[k].Nombre;
                                personas_guardada.Rut      = personas[k].Rut;
                                personas_guardada.Apellido = personas[k].Apellido;

                                /*si los nombre , los apellidos y los  ruts no son iguales entonces se va a borrar lo que se  almaceno en el almacenamiento temporal de PersonaDAO
                                 * y se va a guardar  el nuevo objecto en el almacenamiento temporal esto pasara si ya se almaceno anteriormente y se ira a la vista ademas se va mostrar
                                 * con el nuevo objecto  */
                                if (!personas_guardada.Nombre.Equals(Nombre) && !personas_guardada.Apellido.Equals(Apellido) && !personas_guardada.Rut.Equals(Rut))
                                {
                                    dao.BorrarPersona();
                                    new PersonaDAO().GuaradarPersona(Persona);
                                    return(View());
                                }
                                /*Pero si son iguales se pasara por alto y no se hara nada */
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }
                    /* sino si se ha encontrado el nombre por primera vez y a la vez se  guardado en el almacenamiento temporal  tomara un break y pasara al siguiente Persona */
                    else if (on == 1)
                    {
                        break;
                    }
                    /* Si no se ha encotrado a la persona se va acumular la variable count*/
                    else
                    {
                        count += 1;
                    }
                }
                /* si se encotrado a la persona por primera vez se va a mostrar en la vista */
                if (count != db.Personas.Count())
                {
                    return(View());
                }
                /*si no se ha encotrado a la persona se enviara un mensaje a la vista */
                else
                {
                    ViewBag.Message = "No Existe esa persona ingrese el nombre , apellido y el Rut correpondiente";
                    return(View());
                }
            }
        }