private EditingTemplateLoader(string html, IElementBehaviorManager behaviorManager)
     : base(html)
 {
     _templateBuilder = new StringBuilder();
     _behaviorManager = behaviorManager;
     Parse();
 }
 private EditingTemplateLoader(string html, IElementBehaviorManager behaviorManager)
     : base(html)
 {
     _templateBuilder = new StringBuilder();
     _behaviorManager = behaviorManager;
     Parse();
 }
        internal static string CreateTemplateWithBehaviors(string html, IElementBehaviorManager elementBehaviorManager)
        {
            EditingTemplateLoader loader = new EditingTemplateLoader(html, elementBehaviorManager);

            return(loader.GetTemplateHtml());
        }
        private string CreateTemplateWithBehaviors(string html, IElementBehaviorManager behaviorManager)
        {
            int htmlHashCode = StringHelper.GetHashCodeStable(html);
            int behaviorManagerHashCode = behaviorManager.GetHashCode();
            string key = string.Format(CultureInfo.InvariantCulture, "Html{0}Behaviors{1}", htmlHashCode, behaviorManagerHashCode);
            string templateWithBehaviors;
            bool found = false;

            lock (_templateCacheLock)
            {
                found = _templateCache.TryGetValue(key, out templateWithBehaviors);
            }

            if (found)
                return templateWithBehaviors;

            templateWithBehaviors = EditingTemplateLoader.CreateTemplateWithBehaviors(html, behaviorManager);
            lock (_templateCacheLock)
            {
                if (!_templateCache.ContainsKey(key))
                    _templateCache.Add(key, templateWithBehaviors);
            }

            return templateWithBehaviors;
        }
 internal static string CreateTemplateWithBehaviors(string html, IElementBehaviorManager elementBehaviorManager)
 {
     EditingTemplateLoader loader = new EditingTemplateLoader(html, elementBehaviorManager);
     return loader.GetTemplateHtml();
 }