﻿using System;
using System.Collections.Generic;

namespace SmartStoreNetCore.Core.Infrastructure.Interfaces
{
    public interface IExceptionHandler
    {
        void NotNull(object arg, string name);
        void NotEmpty(string str, string name);
        void NotEmpty<T>(ICollection<T> collection, string name);
        void IsTrue(bool isTrue, string name);
        void NotEmptyGuid(Guid arg, string name);
        void NotDisposed(DisposableObject disposibleObj, string name);
        void IsReadOnly(bool isReadonly, string name);
        void InvalidCast(Type from, Type to);
        void IsPositive<T>(T number, string name) where T : struct, IComparable<T>;
        void isValidOperation(object obj, string name);
        void IsEnumType(Type type, string name);
        void InRange<T>(T number, T min, T max, string name) where T : struct, IComparable<T>;
    }
}
