/// <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> /// Gets ModelItem object representing an Activity object, from InArgument.Expression property /// if given ModelItem object represents an InArgument object. /// </summary> /// <param name="item">The given ModelItem object that might represent an InArgument object.</param> /// <returns>The ModelItem object retrieved from InArgument.Expression if the given parameter represents an InArgument object; /// otherwise, the given parameter itself.</returns> public static ModelItem GetActivityItem(this ModelItem item) { Type genericType = item.GetGenericType(); if (typeof(InArgument).IsAssignableFrom(genericType)) { ModelProperty exprProp = item.Properties[Constants.ExpressionPropertyName]; if (exprProp != null) { return(exprProp.Value); } else { return(null); } } return(item); }