using System.Collections.ObjectModel;
using Entidades;
using Modelo;

namespace Controladora
{
    public class ControladoraProveedores : Singleton<ControladoraProveedores>
    {
        public string Añadir(Proveedor t)
        {
            if (t == null) return "El Proveedor es nulo fallo la carga";

            try
            {
                return RepositorioProveedor.Instance.Add(t) ?
                    $"El Proveedor {t.Nombre} se cargó correctamente" :
                    $"Falló la carga del Proveedor {t.Nombre}";
            }
            catch (InvalidOperationException ex)
            {
                return ex.Message; // Captura la excepción y muestra el mensaje adecuado
            }
        }

        public string Eliminar(long t)
        {
            var proveedor = RepositorioProveedor.Instance.Listar().FirstOrDefault(x => x.Cuit == t);

            if (proveedor == null) return "El Proveedor es nulo fallo la baja";

            return (RepositorioProveedor.Instance.Del(proveedor)) ?
                $"El Proveedor {proveedor.Nombre} se eliminó correctamente" :
                $"Falló la eliminación del Proveedor {t}";
        }

        public string Modificar(Proveedor t)
        {
            if (t == null) return "El Proveedor es nulo fallo la modificación";

            return (RepositorioProveedor.Instance.Mod(t)) ?
                $"El Proveedor {t.Nombre} se modificó correctamente" :
                $"Falló la modificación del Proveedor {t.Nombre}";
        }

        public ReadOnlyCollection<Proveedor> Listar()
        {
            return RepositorioProveedor.Instance.Listar();
        }
    }
}
