using System.Collections.ObjectModel; using Entidades; using Modelo; namespace Controladora { public class ControladoraOrdenDeCompras : ControladoraBase { public override string AƱadir(OrdenDeCompra t) { if (t == null) return "El OrdenDeCompra es nulo fallo la carga"; if (t.Proveedor == null) return "No se cargo el proveedor"; // checkea que los detalles sean validos if (ProductoCheck(t.MostrarDetalles())) return "Hay referencias a productos no existentes"; return (RepositorioOrdenDeCompra.Instance.Add(t)) ? $"El OrdenDeCompra {t.Id} se cargo correctamente": $"Fallo la carga del OrdenDeCompra {t.Id}"; } private bool ProductoCheck(ReadOnlyCollection ldetalles) { bool ret = false; var lproductos = RepositorioProductos.Instance.Listar(); Parallel.ForEach(ldetalles, (ll) => { var producto = lproductos.FirstOrDefault(x => x.Id == ll.Producto.Id); ret = (producto == null) ? true : false; }); return ret; } override public string Eliminar(OrdenDeCompra t) { if (t == null) return "El OrdenDeCompra es nulo fallo la carga"; return (RepositorioOrdenDeCompra.Instance.Del(t)) ? $"El OrdenDeCompra {t.Id} se Elimino correctamente": $"Fallo la Eliminacion del OrdenDeCompra {t.Id}"; } override public string Modificar(OrdenDeCompra t) { if (t == null) return "El OrdenDeCompra es nulo fallo la carga"; return (RepositorioOrdenDeCompra.Instance.Mod(t)) ? $"El OrdenDeCompra {t.Id} se Modifico correctamente": $"Fallo la Modificacion del OrdenDeCompra {t.Id}"; } public override ReadOnlyCollection Listar() { return RepositorioOrdenDeCompra.Instance.Listar(); } } }