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()); } } }