Source

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

// -----------------------------------------------------------------------
// <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;
        }

    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.