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.
[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.
Autor: Kevin Arias
Comentarios
Publicar un comentario