private static TypeTemplateModel CacheAndReturn(EventArgumentModel argument, TypeTemplateModel typeTemplateModel)
        {
            var cacheKey = GetCacheKey(argument);

            TypeTemplates[cacheKey] = typeTemplateModel;

            return(typeTemplateModel);
        }
 public TypeTemplateModel GetTypeTemplateModel()
 {
     if (_typeTemplateModel == null)
     {
         var typeTemplate = new TypeTemplate <TSource>();
         BuildArguments(typeTemplate);
         _typeTemplateModel = typeTemplate.GetModel();
     }
     return(_typeTemplateModel);
 }