/// <summary> /// New View Model Builder /// </summary> /// <param name="keyProvider">A View Model Key provider</param> public ViewModelFactory(IViewModelKeyProvider keyProvider, IViewModelResolver resolver) { if (keyProvider == null) { throw new ArgumentNullException("keyProvider"); } if (resolver == null) { throw new ArgumentNullException("resolver"); } this.keyProvider = keyProvider; this.resolver = resolver; }
/// <summary> /// New View Model Builder /// </summary> /// <param name="keyProvider">A View Model Key provider</param> public ViewModelFactory(IViewModelKeyProvider keyProvider, IViewModelResolver resolver, ILinkResolver linkResolver, IRichTextResolver richTextResolver, IContextResolver contextResolver, IDD4TConfiguration configuration, ILogger logger ) { if (keyProvider == null) { throw new ArgumentNullException("keyProvider"); } if (resolver == null) { throw new ArgumentNullException("resolver"); } if (linkResolver == null) { throw new ArgumentNullException("linkResolver"); } if (richTextResolver == null) { throw new ArgumentNullException("richTextResolver"); } if (contextResolver == null) { throw new ArgumentNullException("contextResolver"); } if (configuration == null) { throw new ArgumentNullException("DD4Tconfiguration"); } if (logger == null) { throw new ArgumentNullException("logger"); } this._keyProvider = keyProvider; this._resolver = resolver; this._linkResolver = linkResolver; this._richtTextResolver = richTextResolver; this._contextResolver = contextResolver; this._configuration = configuration; this._logger = logger; // Trying to find the entry assembly to load view models from. // For web applications, a special trick is needed to do this (see below). Assembly entryAssembly = GetWebEntryAssembly(); if (entryAssembly == null) { entryAssembly = Assembly.GetEntryAssembly(); } if (entryAssembly != null) { LoadViewModels(new List <Assembly> { entryAssembly }); } }
public bool IsMatch(IViewModelData data, IViewModelKeyProvider provider) { var key = provider.GetViewModelKey(data); return IsMatch(data, key); }