using System.Collections.ObjectModel; using Entidades; namespace Modelo { public sealed class RepositorioPresupuesto : RepositorioBase { override public bool Add(Presupuesto t) { bool ret = false; try { // Verifica si ya existe un presupuesto con el mismo ID if (!ExistePorId(t.Id)) { almacen.Add(t); ret = true; } } catch (Exception ex) { // Maneja o registra la excepción Console.WriteLine($"Error al agregar presupuesto: {ex.Message}"); } return ret; } override public bool Mod(Presupuesto t) { bool ret = false; try { var presupuestoAModificar = almacen.FindIndex(x => x.Id == t.Id); if (presupuestoAModificar > -1) { almacen[presupuestoAModificar] = t; ret = true; } } catch (Exception ex) { // Maneja o registra la excepción Console.WriteLine($"Error al modificar presupuesto: {ex.Message}"); } return ret; } public bool ExistePorId(int id) { // Asegúrate de que `almacen` es la lista correcta return almacen.Any(p => p.Id == id); } public bool AceptarPresupuesto(Presupuesto t) { bool ret = false; try { var presupuestoAModificar = almacen.FindIndex(x => x.Id == t.Id); almacen[presupuestoAModificar].Aceptado = true; ret = true; } catch (Exception ex) { // Maneja o registra la excepción Console.WriteLine($"Error al modificar presupuesto: {ex.Message}"); } return ret; } override public bool Del(Presupuesto t) { bool ret = false; try { var presupuestoAEliminar = almacen.Find(x => x.Id == t.Id); if (presupuestoAEliminar != null) { presupuestoAEliminar.Habilitado = false; ret = true; } } catch (Exception ex) { // Maneja o registra la excepción Console.WriteLine($"Error al eliminar presupuesto: {ex.Message}"); } return ret; } public ReadOnlyCollection MostrarDetalles(Presupuesto presupuesto) { return presupuesto.MostrarDetalles(); } } }