 
			
						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
 
		 
		 
		