public RazorTemplateViewModel(RazorDocument document = null, ModelBuilders modelBuilderFactory = null, ModelProviders modelProviders = null)
{
_document = document ?? new RazorDocument();
_modelBuilderFactory = modelBuilderFactory;
_modelProviderFactory = modelProviders;
_savedModels = new Dictionary<Type, string>();
var modelProviderNames = _modelProviderFactory.Providers.Select(x => (string)new ModelProviderFactoryName(x.Value));
AvailableModelProviders = new ObservableCollection<string>(modelProviderNames);
_selectedModelProvider = new ModelProviderName(_document.ModelProvider);
Errors = new ObservableCollection<RazorPadError>();
Messages = new ObservableTextWriter();
TemplateCompiler = new TemplateCompiler();
AttachToModelProviderEvents(_document.ModelProvider);
}