Source

main / Source / WebService / Web.Common / Extensions / EnumExtensions.cs

Full commit
Naethra D ba1cb57 






















































// -----------------------------------------------------------------------
// <copyright file="EnumExtensions.cs" company="Microsoft">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DataUp.Web.Common
{
    /// <summary>
    /// Class having the extension methods needed for Enums.
    /// </summary>
    public static class EnumExtensions
    {
        /// <summary>
        /// Converts an string or an integer value to respective Enum.
        /// </summary>
        /// <typeparam name="TInput">
        /// Value Type.
        /// </typeparam>
        /// <typeparam name="TEnum">
        /// Enum Type.
        /// </typeparam>
        /// <param name="value">
        /// Value of the enum.
        /// </param>
        /// <param name="defaultValue">
        /// Default enum value.
        /// </param>
        /// <returns>
        /// Enum value corresponding to the value.
        /// </returns>
        public static TEnum ToEnum<TInput, TEnum>(this TInput value, TEnum defaultValue)
            where TEnum : struct
        {
            TEnum result = defaultValue;

            Type type = typeof(TEnum);

            if (value != null && type.IsEnum)
            {
                if (Enum.TryParse<TEnum>(value.ToString(), true, out result))
                {
                    // Dummy Call.
                }
            }

            return result;
        }

    }
}