using System;
using Quadarax.Foundation.Core.Exceptions;

namespace BO.AppServer.Business.Exceptions
{
    // Invalid argument '{0}' value ({1}), cannot cast to type '{2}'.
    public class CannotCastArgumentException : CodeException
    {
        private const string CS_MESSAGE = "Cannot cast to type '{2}', invalid argument '{0}' value ({1}).";
        private const int CN_CODE = 1011;


        public CannotCastArgumentException(string argumentName, string argumentValue,Type expectedType, Exception innerException) : base(CN_CODE, string.Format(CS_MESSAGE,argumentName, argumentValue, expectedType.Name), innerException)
        {
        }

        public CannotCastArgumentException(string argumentName, string argumentValue,Type expectedType) : base(CN_CODE, string.Format(CS_MESSAGE,argumentName, argumentValue, expectedType.Name))
        {
        }

    }
}
