using System;
using System.ComponentModel.DataAnnotations;
using System.Globalization;

namespace Utilitarios.APINet.Atributos
{
    public class GuidValidoAttribute : ValidationAttribute
    {
        #region "METODOS PUBLICOS"

        /// <summary>
        /// Indica si es valido
        /// </summary>
        /// <param name="value">Valor a validar</param>
        /// <returns>Un booleano indicando si es valido o no</returns>
        public override bool IsValid(object value)
        {
            bool resultado = false;
            string entrada = Convert.ToString(value, CultureInfo.CurrentCulture);

            Guid guid;

            if (string.IsNullOrWhiteSpace(entrada) == false && Guid.TryParse(entrada, out guid) == true && guid != Guid.Empty)
            {
                resultado = true;
            }

            return resultado;
        }

        #endregion "METODOS PUBLICOS"
    }
}