using System.Collections.ObjectModel;
using Entidades;

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

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

            return ret;
        }

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

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

            return ret;
        }

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

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

            return ret;
        }

        public ReadOnlyCollection<DetalleOrdenDeCompra> MostrarDetalles(OrdenDeCompra orden)
        {
            return orden.MostrarDetalles();
        }
    }
}
