En esta tercera parte del CRUD empleado con POO sobre una lista estática, veremos el tema de editar y eliminar datos de una persona.
Autor:
Kevin Arias (Ver todos sus post)
C#
C Sharp
Programación orientada a objetos
POO
CRUD
Listas
Fecha de publicación: 2016-09-09 17:14:41
Ayúdanos con el arduo trabajo que realizamos.
[POO CON C#] POO CON C#: 010-CRUD CON LISTAS Y PROGRAMACIÓN ORIENTADA A OBJETOS (NO DB) P3
En este ejemplo Concluímos los temas de POO en lo que ahora veremos las acciones de editar y eliminar datos de una persona sobre nuestra lista estática.
Seguidamente les dejo el código que se emplea para este ejemplo.
Datos.cs
using System.Collections.Generic; namespace AppFirst { public class Datos { public static List dataPersona = new List(); } }
AccesoDatos.cs
using System; using System.Collections.Generic; namespace AppFirst { public class AccesoDatos : IAccesoDatos { public bool create(Persona persona) { Datos.dataPersona.Add(persona); return true; } public bool delete(string documentoIdentidad) { int posicionPersona = 0; bool existePersona = false; foreach (Persona item in Datos.dataPersona) { if (item.documentoIdentidad == documentoIdentidad) { existePersona = true; break; } posicionPersona++; } if (existePersona) { Datos.dataPersona.RemoveAt(posicionPersona); return true; } else { return false; } } public List read() { return Datos.dataPersona; } public bool update(Persona persona, int posicionPersona) { Datos.dataPersona[posicionPersona - 1].nombre = persona.nombre; Datos.dataPersona[posicionPersona - 1].apellido = persona.apellido; Datos.dataPersona[posicionPersona - 1].documentoIdentidad = persona.documentoIdentidad; Datos.dataPersona[posicionPersona - 1].sexo = persona.sexo; Datos.dataPersona[posicionPersona - 1].fechaNacimiento = persona.fechaNacimiento; Datos.dataPersona[posicionPersona - 1].estatura = persona.estatura; Datos.dataPersona[posicionPersona - 1].fechaModificacion = persona.fechaModificacion; return true; } } }
IAccesoDatos.cs
using System.Collections.Generic; namespace AppFirst { public interface IAccesoDatos { bool create(Persona persona); List read(); bool update(Persona persona, int posicionPersona); bool delete(string documentoIdentidad); } }
Auditoria.cs
using System; namespace AppFirst { public abstract class Auditoria { public DateTime fechaRegistro { get; set; } public DateTime fechaModificacion { get; set; } } }
Persona.cs
using System; namespace AppFirst { public class Persona : Auditoria { public string nombre { get; set; } public string apellido { get; set; } public string documentoIdentidad { get; set; } public bool sexo { get; set; } public DateTime fechaNacimiento { get; set; } public float estatura { get; set; } } }
Negocio.cs
using System; using System.Collections.Generic; namespace AppFirst { public class Negocio { public void insertar() { Console.WriteLine("Ingrese nombre: "); string nombre = Console.ReadLine(); Console.WriteLine("Ingrese apellido: "); string apellido = Console.ReadLine(); Console.WriteLine("Ingrese documento de identidad: "); string documentoIdentidad = Console.ReadLine(); Console.WriteLine("Ingrese sexo: "); bool sexo = Console.ReadLine()=="M" ? true : false; Console.WriteLine("Ingrese fecha de nacimiento: "); DateTime fechaNacimiento = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Ingrese estatura: "); float estatura = float.Parse(Console.ReadLine()); Persona persona = new Persona(); persona.nombre = nombre; persona.apellido = apellido; persona.documentoIdentidad = documentoIdentidad; persona.sexo = sexo; persona.fechaNacimiento = fechaNacimiento; persona.estatura = estatura; persona.fechaRegistro = DateTime.Now; persona.fechaModificacion = DateTime.Now; IAccesoDatos iAccesoDatos = new AccesoDatos(); if (iAccesoDatos.create(persona)) { Console.WriteLine("Datos registrados correctamente."); } else { Console.WriteLine("No se pudo registrar los datos."); } } public void listar() { IAccesoDatos iAccesoDatos = new AccesoDatos(); List listaPersona = iAccesoDatos.read(); int i = 1; foreach (Persona item in listaPersona) { Console.WriteLine(string.Concat(i, ". ", item.nombre, "---", item.apellido, "---", item.documentoIdentidad, "---", item.sexo, "---", item.fechaNacimiento, "---", item.estatura, "---", item.fechaRegistro, "---", item.fechaModificacion)); i++; } } public void editar() { listar(); Console.WriteLine(); Console.WriteLine("Ingrese el nro de la persona que desea editar:"); int posicionPersona = int.Parse(Console.ReadLine()); Console.WriteLine("Ingrese nombre: "); string nombre = Console.ReadLine(); Console.WriteLine("Ingrese apellido: "); string apellido = Console.ReadLine(); Console.WriteLine("Ingrese documento de identidad: "); string documentoIdentidad = Console.ReadLine(); Console.WriteLine("Ingrese sexo: "); bool sexo = Console.ReadLine() == "M" ? true : false; Console.WriteLine("Ingrese fecha de nacimiento: "); DateTime fechaNacimiento = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Ingrese estatura: "); float estatura = float.Parse(Console.ReadLine()); Persona persona = new Persona(); persona.nombre = nombre; persona.apellido = apellido; persona.documentoIdentidad = documentoIdentidad; persona.sexo = sexo; persona.fechaNacimiento = fechaNacimiento; persona.estatura = estatura; persona.fechaModificacion = DateTime.Now; IAccesoDatos iAccesoDatos = new AccesoDatos(); if (iAccesoDatos.update(persona, posicionPersona)) { Console.WriteLine("Datos modificados correctamente."); } else { Console.WriteLine("No se pudo modificar los datos."); } } public void eliminar() { listar(); Console.WriteLine(); Console.WriteLine("Ingrese el documento de identidad de la persona que desea eliminar:"); string documentoIdentidad = Console.ReadLine(); IAccesoDatos iAccesoDatos = new AccesoDatos(); if (iAccesoDatos.delete(documentoIdentidad)) { Console.WriteLine("Persona eliminada correctamente."); } else { Console.WriteLine("No se pudo eliminar los datos porque la persona no existe."); } } } }
Program.cs
using System; namespace AppFirst { public class Program { public static void Main(string[] args) { int opcionSeleccionada = 0; int x; Negocio negocio = new Negocio(); while (opcionSeleccionada != 5) { Console.WriteLine("1. Insertar persona."); Console.WriteLine("2. Listar personas."); Console.WriteLine("3. Editar persona."); Console.WriteLine("4. Eliminar persona."); Console.WriteLine("5. Salir."); Console.WriteLine("----------------------------------------------------"); Console.WriteLine("Ingrese una opción:"); string opcionSeleccionadaTemporal = Console.ReadLine(); if (int.TryParse(opcionSeleccionadaTemporal, out x)) { opcionSeleccionada = int.Parse(opcionSeleccionadaTemporal); switch (opcionSeleccionada) { case 1: negocio.insertar(); break; case 2: negocio.listar(); break; case 3: negocio.editar(); break; case 4: negocio.eliminar(); break; case 5: break; default: Console.WriteLine("La opción asignada no está definida en el menú."); break; } } else { opcionSeleccionada = 0; Console.WriteLine("El valor ingresado no es correcto"); } if (opcionSeleccionada != 5) { Console.ReadLine(); } Console.Clear(); } } } }
A continuación les dejo con un video que explica detalladamente todas las partes del código anterior.
INFORMACIÓN SOBRE EL AUTOR DEL ARTÍCULO
KEVIN ARNOLD ARIAS FIGUEROA
(SOFTWARE ARCHITECT - CODIDEEP E.I.R.L.):
Profesional en tecnologías de la información con más de 10 años de experiencia en desarrollo de software empresarial, con amplios conocimientos en manejo de arquitecturas de software de escala vertical y horizontal, gestión de proyectos, liderazgo de equipos y dominio en modelado de procesos a gran escala.
- Debes estar logueado para realizar comentarios