using System.Collections.ObjectModel; using Entidades; using Modelo; namespace Controladora { public class ControladoraPresupuestos : Singleton { public string AƱadir(Presupuesto t) { if (t == null) return "El Presupuesto es nulo fallo la carga"; return (RepositorioPresupuesto.Instance.Add(t)) ? $"El Presupuesto {t.Id} se cargo correctamente": $"Fallo la carga del Presupuesto {t.Id}"; } public string Eliminar(Presupuesto t) { if (t == null) return "El Presupuesto es nulo fallo la carga"; return (RepositorioPresupuesto.Instance.Del(t)) ? $"El Presupuesto {t.Id} se Elimino correctamente": $"Fallo la Eliminacion del Presupuesto {t.Id}"; } public string Modificar(Presupuesto t) { if (t == null) return "El Presupuesto es nulo fallo la carga"; return (RepositorioPresupuesto.Instance.Mod(t)) ? $"El Presupuesto {t.Id} se Modifico correctamente": $"Fallo la Modificacion del Presupuesto {t.Id}"; } public string AceptarPresupuesto(Presupuesto t) { if (t == null) return "El Presupuesto es nulo fallo la carga"; if (t.Aceptado == true) return "El presupuesto ya fue aceptado"; return (RepositorioPresupuesto.Instance.AceptarPresupuesto(t)) ? $"El Presupuesto {t.Id} se Acepto correctamente": $"Fallo la aceptacion del Presupuesto {t.Id}"; } public ReadOnlyCollection Listar() { return RepositorioPresupuesto.Instance.Listar() .Where(x => x.Habilitado == true) .ToList() .AsReadOnly(); } public ReadOnlyCollection ListarAceptado() { return RepositorioPresupuesto.Instance.Listar() .Where(x => x.Habilitado == true) .Where(x => x.Aceptado == true) .ToList() .AsReadOnly(); } public ReadOnlyCollection ListarDetalles(Presupuesto presupuesto) { Presupuesto pres = RepositorioPresupuesto.Instance.Listar().First(x=> x.Id == presupuesto.Id); if (pres == null) return new ReadOnlyCollection(new List()); return pres.MostrarDetalles(); } public Presupuesto? MostrarPresupuestoPorId(Presupuesto presupuesto) { if (presupuesto == null) return null; if (presupuesto.Id < 0) return null; var pres = RepositorioPresupuesto.Instance.Listar().First(x => x.Id == presupuesto.Id); return pres; } public ReadOnlyCollection? ListarPresupuestosPorProveedor(Proveedor proveedor) { if (proveedor == null) return null; if (proveedor.Cuit < 0) return null; var presupuestos = RepositorioPresupuesto.Instance.Listar() .Where(x => x.Proveedor.Cuit == proveedor.Cuit) .ToList() .AsReadOnly(); return presupuestos; } } }