using System.Collections.ObjectModel;
using Entidades;

namespace Modelo
{
    public sealed class RepositorioPedidoDePresupuesto : RepositorioBase<PedidoDePresupuesto, RepositorioPedidoDePresupuesto>
    {
        override public bool Add(PedidoDePresupuesto t)
        {
            bool ret = false;

            try
            {
                almacen.Add(t);
                ret = true;
            }
            catch (Exception)
            {
                throw;
            }

            return ret;
        }

        override public bool Mod(PedidoDePresupuesto t)
        {
            bool ret = false;

            try
            {
                var pedidoAModificar = almacen.FindIndex(x => x.Id == t.Id);
                if (pedidoAModificar > -1)
                {
                    almacen[pedidoAModificar] = t;
                    ret = true;
                }
            }
            catch (Exception)
            {
                throw;
            }

            return ret;
        }

        override public bool Del(PedidoDePresupuesto t)
        {
            bool ret = false;

            try
            {
                var pedidoAEliminar = almacen.Find(x => x.Id == t.Id);
                if (pedidoAEliminar != null)
                {
                    almacen.Remove(pedidoAEliminar);
                    ret = true;
                }
            }
            catch (Exception)
            {
                throw;
            }

            return ret;
        }

        public ReadOnlyCollection<DetallePedido> MostrarDetalles(PedidoDePresupuesto pedido)
        {
            return pedido.MostrarDetalles();
        }
    }
}
