/// <summary>
        ///     Populates the options.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>A Enumerable of ModelOptions.</returns>
        private static IEnumerable <ModelOption> PopulateOptions(object model)
        {
            var propertyInfos = model.GetType().GetProperties();

            foreach (var info in propertyInfos.Where(t => t.GetMethod.GetParameters().Length == 0))
            {
                var flag = new ModelOption(info.Name, info, model)
                {
                    DisplayName =
                        info.GetCustomAttribute <DisplayNameAttribute>()?.DisplayName
                        ?? CreateFriendlyName(info.Name),
                    Description = info.GetCustomAttribute <DescriptionAttribute>()?.Description
                };

                yield return(flag);
            }
        }
 /// <summary>
 ///     Adds option to the model map.
 /// </summary>
 /// <param name="option">The option.</param>
 /// <returns>The ModelMap.</returns>
 public ModelMap AddOption(ModelOption option)
 {
     this.Options.Add(option.Name, option);
     return(this);
 }