/// <summary>
        /// Translates an activity instance.
        /// </summary>
        /// <param name="modelItem">The ModelItem object representing the activity instance.</param>
        /// <returns>The translated result.</returns>
        public string Translate(ModelItem modelItem)
        {
            if (modelItem == null)
            {
                return(Constants.EmptyTextDisplay);
            }

            ModelItem activityItem = modelItem.GetActivityItem();

            if (null == activityItem)
            {
                return(Constants.EmptyTextDisplay);
            }

            Type genericType        = activityItem.GetGenericType();
            ActivityTranslateItem m = (from a in _activityTranslateItem
                                       where a.Key == genericType
                                       select a.Value).FirstOrDefault();

            if (m == null)
            {
                // Use fallback translation item to prevent the app from crashing.
                m = FallbackTranslateItem;
            }
            return(m(this, activityItem));
        }
 /// <summary>
 /// Add a translation item for a specified type of activity.
 /// </summary>
 /// <param name="type">The specified System.Type object representing the type of activity.</param>
 /// <param name="translateItem">The translation item.</param>
 public void AddTranslateItem(Type type, ActivityTranslateItem translateItem)
 {
     _activityTranslateItem.Add(type, translateItem);
 }