Tuesday 11 October 2022
Why I use a Mac for development
Wednesday 22 December 2021
How to switch betwen custom variants (CSHTML) when using SXA
How to switch between custom CSHTML variants in when using SXA
Note: The Variant Definition items do not have any child items - I.e no HTML structure.
You will now need to make a note of the Item ID for each of the Variant Definition Items.
In the controller you created, you will now be overriding the GetIndexViewName method. In here you will find the ID of the variant selected and based on that set the path (ViewName) to the view you created for that variant.
Here are the constants I set up for the above example:
private const string FieldNames = "FieldNames"; private const string FourColumnVariantId = "{363B93FC-86D0-42E5-8176-EF843C4697D0}"; private const string FourColumnGreenVariantId = "{B9A250BC-91B9-4BE8-903B-9EEBE31FAA9E}"; private const string ThreeColumnVariantId = "{74B1E806-B58F-4DEE-A423-13AF62550536}"; private const string ThreeColumnGreenVariantId = "{1CD230A6-A5C3-4F24-B394-FE0367863B51}"; private const string TwoColumnVariantId = "{B764C891-F8C2-4714-A27A-7ADF466DCEC5}"; private const string FourColumnView = "~/Views/Project/HybridColumn/FourColumn.cshtml"; private const string ThreeColumnView = "~/Views/Project/HybridColumn/ThreeColumn.cshtml"; private const string TwoColumnView = "~/Views/Project/HybridColumn/TwoColumn.cshtml";
Now we override the GetIndexViewName method and find the selected rendering variant in the Rendering.Parameters property, and return the appropriate view path. And that's it!
protected override string GetIndexViewName() { if (Rendering?.Parameters?[FieldNames] == null) return base.GetIndexViewName(); switch (Rendering.Parameters[FieldNames]) { case FourColumnVariantId: case FourColumnGreenVariantId: return FourColumnView; case ThreeColumnVariantId: case ThreeColumnGreenVariantId: return ThreeColumnView; case TwoColumnVariantId: return TwoColumnView; default: return base.GetIndexViewName(); } }
Thursday 10 December 2020
Custom Header Icon for your items?
Custom Header Icon for your Items?
What am I changing?
How do you do it?
<pipelines> <renderContentEditorHeader> <processor type="MyProject.Feature.Image.Processors.GetEditorIcon, MyProject.Feature.Image" patch:before="processor[@type='Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditorHeader.AddTitle, Sitecore.Client']" resolve="true" /> </renderContentEditorHeader> </pipelines>And here's the custom processor:
namespace MyProject.Feature.Image.Processors { public class GetEditorIcon { private readonly ISitecoreService _sitecoreService; public GetEditorIcon(ISitecoreServiceFactory sitecoreServiceFactory) { _sitecoreService = sitecoreServiceFactory.CreateInstance(); } public void Process(RenderContentEditorHeaderArgs args) { Assert.ArgumentNotNull(args, "args"); var item = args.Item; using (var htmlTextWriter = new HtmlTextWriter(new StringWriter())) { var imageBuilder = new ImageBuilder(); if (item.TemplateID == Constants.MemberDetailsPage) { var provider = _sitecoreService.GetItem<FacultyStaffMember>(item.ID.Guid); if (!string.IsNullOrEmpty(provider?.FacultyMemberProfileImage?.Src)) { var src = provider.FacultyMemberProfileImage.Src; var urlString = new UrlString(src + "?height=32&width=32") { ["rev"] = item[FieldIDs.Revision], ["la"] = item.Language.ToString() }; imageBuilder.Src = urlString.ToString(); imageBuilder.Class = "scEditorHeaderIcon"; htmlTextWriter.Write("<span class=\"scEditorHeaderIcon\">"); htmlTextWriter.Write(imageBuilder.ToString()); htmlTextWriter.Write("</span>"); //Remove other icon added args.Parent.Controls.Clear(); args.EditorFormatter.AddLiteralControl(args.Parent, htmlTextWriter.InnerWriter.ToString()); } } } } } }The process method does the following:
- Checks the template of the item to ensure that it is using the template we are wanting to update.
- We then get the item (in this case using GlassMapper), but you could just use the Sitecore item
- We then build the image HTML and replace the Sitecore one in the header
This processor gets called every time the item is refreshed in the Content Editor.
Thursday 5 March 2020
Error when using ajax.js (Commerce) and JSON.parse
I found an issue today with the ajax.js file that comes with Sitecore Commerce in Sitecore 9.2.
I was trying to get a third party js component (Chute) working in Sitecore which loads scripts dynamically, but the component wouldn't display any content. This particular component displays images in either a carousel or grid. But after the initial load nothing appeared except for an error in my browser console:
TypeError: data is null ajax.js: 156:24
This same component worked without any issue, in a non-commerce environment.
After some investigations, it became apparent that the issue was down to the fact that somewhere in the Js files supplied with Commerce the standard JSON.parse function was replaced with a custom function.
Unfortunately it was missing a null check inside the new function. I know that as developer we all do this... However, I wanted to highlight the issue, to save someone some grief when trying to figure out what is going on...
The file in question can be found in the Sitecore content tree here: /sitecore/media library/Base Themes/Commerce Services Theme/Scripts/ajax
Once you download the media content you will get a script called ajax.js.
The offending code @ line 156, can be found just after the JSON.parse equals statement in the block of code shown below:
(function (root, factory) { 'use strict'; if (typeof define === 'function' && define.amd) { // use AMD define funtion to support AMD modules if in use define(['exports'], factory); } else if (typeof exports === 'object') { // to support CommonJS factory(exports); } // browser global variable var AjaxService = {}; root.AjaxService = AjaxService; factory(AjaxService); })(this, function (AjaxService) { 'use strict'; // Hack >> // When debugging is on, Sitecore is returning extra information, we need to strip it from the JSON string var jsonParseRef = JSON.parse; JSON.parse = function (data) { var debugIndex = data.indexOf('<div title="Click here to view the profile."'); if (debugIndex > 0) { data = data.substring(debugIndex, 0, debugIndex); } return jsonParseRef(data); };You will see in the above function that JSON.parse is updated with a new function, unfortunately the data variable is not checked for null before being used.
Changing the JSON.parse function to:
JSON.parse = function (data) { if(data==null)return null; var debugIndex = data.indexOf('<div title="Click here to view the profile."'); if (debugIndex > 0) { data = data.substring(debugIndex, 0, debugIndex); } return jsonParseRef(data); };
Fixes the issue.
Hopefully this might help someone.
Friday 31 January 2020
TDS Model Inheritance
Team Development for Sitecore Model Inheritance
For a long time now I have been trying to find a way to have TDS models inherit across the Helix architecture.I found this link on StackOverflow:
https://stackoverflow.com/questions/31711197/sitecore-tds-multi-project-properties-base-template-reference-not-working-for-me
And thought it worth re-posting - Thanks to Rohan for figuring out how to do this!
All you have to do is to update Helpers.tt in the TDS project that needs to inherit base, as follows:
public static string GetNamespace(string defaultNamespace, SitecoreItem item, bool includeGlobal = false) { ListnamespaceSegments = new List (); // add the following line namespaceSegments.Add(!item.ReferencedItem ? defaultNamespace : "[BaseProjectNameSpace]"); // remove this line - namespaceSegments.Add(defaultNamespace); namespaceSegments.Add(item.Namespace); string @namespace = AsNamespace(namespaceSegments); // use an extension method in the supporting assembly return (includeGlobal ? string.Concat("global::", @namespace) : @namespace).Replace(".sitecore.templates", "").Replace("_", ""); }
Make sure that you replace the above [BaseProjectNameSpace] with your base projects namespace.
Also make sure you update the Multi-Project properties for your TDS project so that it references the base project:
Monday 9 September 2019
Unknown Shape Definition
Looking in the logs I saw Solr errors relating to invalid coordinate data:
Exception: SolrNet.Exceptions.SolrConnectionException
Message: <?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">400</int>
<int name="QTime">545</int>
</lst>
<lst name="error">
<lst name="metadata">
<str name="error-class">org.apache.solr.common.SolrException</str>
<str name="root-error-class">java.text.ParseException</str>
</lst>
<str name="msg">ERROR: [doc=sitecore://master/{a885844b-34cd-4eb1-a9d0-2ab1bcc8587a}?lang=en&ver=1&ndx=sitecore_master_index] Error adding field 'coordinate_rpt'='-121.444851,37.712654' msg=Unable to parse shape given formats "lat,lon", "x y" or as WKT because java.text.ParseException: Unknown Shape definition [-121.444851,37.712654]</str>
<int name="code">400</int>
</lst>
</response>
Source: SolrNet
at SolrNet.Impl.SolrConnection.PostStream(String relativeUrl, String contentType, Stream content, IEnumerable`1 parameters)
at SolrNet.Impl.SolrConnection.Post(String relativeUrl, String s)
at SolrNet.Impl.LowLevelSolrServer.SendAndParseHeader(ISolrCommand cmd)
at Sitecore.ContentSearch.SolrProvider.SolrBatchUpdateContext.AddRange(IEnumerable`1 group, Int32 groupSize)
at Sitecore.ContentSearch.SolrProvider.SolrBatchUpdateContext.AddDocument(Object itemToAdd, IExecutionContext[] executionContexts)
at Sitecore.ContentSearch.SolrProvider.SolrIndexOperations.ApplyPermissionsThenIndex(IProviderUpdateContext context, IIndexable version)
at Sitecore.ContentSearch.SitecoreItemCrawler.DoAdd(IProviderUpdateContext context, SitecoreIndexableItem indexable)
at Sitecore.ContentSearch.HierarchicalDataCrawler`1.CrawlItem(T indexable, IProviderUpdateContext context, CrawlState`1 state)
Nested Exception
Exception: System.Net.WebException
Message: The remote server returned an error: (400) Bad Request.
Source: System
at System.Net.HttpWebRequest.GetResponse()
at HttpWebAdapters.Adapters.HttpWebRequestAdapter.GetResponse()
at SolrNet.Impl.SolrConnection.GetResponse(IHttpWebRequest request)
at SolrNet.Impl.SolrConnection.PostStream(String relativeUrl, String contentType, Stream content, IEnumerable`1 parameters)
It looks like when Solr threw the error, any other items in the same batch were ignored.
After some investigations, I realized that Sitecore is using a calculated field to index the coordinate data, and so overriding it with additional validation should be be fairly straight forwards.
public class CoordinateValidationComputedIndex : AbstractComputedIndexField
{
private static readonly ILog Logger = LogManager.GetLogger("Sitecore.Diagnostics.Crawling") ?? LoggerFactory.GetLogger(typeof(CrawlingLog));
public override object ComputeFieldValue(IIndexable indexable)
{
Item obj = indexable as SitecoreIndexableItem;
if (obj == null || !obj.Fields.Contains(new ID(Constants.Latitude)) ||
!obj.Fields.Contains(new ID(Constants.Longitude)))
{
return null;
}
if (!double.TryParse(obj[new ID(Constants.Latitude)], NumberStyles.Any, CultureInfo.InvariantCulture,
out var lat) || !double.TryParse(obj[new ID(Constants.Longitude)], NumberStyles.Any,
CultureInfo.InvariantCulture, out var lon))
{
return null;
}
//Latitude Check -90 - +90
//Longitude Check -180 - +180
if (lat < -90 || lat > 90 || lon < -180 || lon > 180)
{
Logger.Warn(
$"Coordinate validation failed for {obj.ID.Guid:B}:{obj.Paths.FullPath}\n\rWith value of latitude: {lat}, longitude: {lon}\n\r Latitude should be in range -90 to +90\n\r Longitude should be in range -180 to +180");
return null;
}
return new Coordinate(lat, lon).ToString();
}
}
I then created the following patch file to override the OTB configuration.
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:env="http://www.sitecore.net/xmlconfig/env/">
<sitecore>
<contentSearch>
<indexConfigurations>
<defaultSolrIndexConfiguration type="Sitecore.ContentSearch.SolrProvider.SolrIndexConfiguration, Sitecore.ContentSearch.SolrProvider">
<documentOptions type="Sitecore.ContentSearch.SolrProvider.SolrDocumentBuilderOptions, Sitecore.ContentSearch.SolrProvider">
<fields hint="raw:AddComputedIndexField">
<field patch:instead="*[@fieldName='coordinate']" fieldName="coordinate" returnType="coordinate" >zzz.Feature.Geolocation.ComputedIndex.CoordinateValidationComputedIndex, zzz.Feature</field>
</fields>
</documentOptions>
</defaultSolrIndexConfiguration>
</indexConfigurations>
</contentSearch>
</sitecore>
</configuration>
And this is now what I get in the logs (no Solr errors), and the correct number of items being indexed.
4176 16:17:47 INFO [Index=sitecore_master_index] Crawler: Processed 5000 items
7988 16:17:47 WARN Coordinate validation failed for {570326e8-7ae6-4f7a-9354-62670d99c199} : ***Item Path Removed*** with value of latitude:-95.67611, longitude:-95.67611 -
Latitude should be in range -90 to +90
Longitude should be in range -180 to +180
6564 16:17:51 INFO [Index=sitecore_master_index] Crawler: Processed 6000 items
Tuesday 30 April 2019
Extending Dependency Injection in Sitecore
With that in mind I thought I would create my own set of utilities and services that would check the IoC registered services on startup. Furthermore I wanted to make it extendible so that additional functionality could be injected in at a later date to check for things that I hadn't thought of.
Additionally I wanted it to have the functionality to show a YSOD and stop the application on failure (configurable) but also log all the findings to a separate file.
As an aside; the way that I register services is to have a number of interfaces that act as flags, that indicate what lifestyle the service should be registered with.
These include:
IService IHelper IScoped
I then created my own ServiceCollection extension method(s) to register these service:
[MethodImpl(MethodImplOptions.NoInlining)] public static void AddServices(this IServiceCollection serviceCollection, params Assembly[] assemblies) { var services = GetTypesImplementing<IService>(assemblies); foreach (var controller in services) { var firstInterface = controller.GetInterfaces()[0]; serviceCollection.AddTransient(firstInterface, controller); } var scoped = GetTypesImplementing<IScoped>(assemblies); foreach (var controller in scoped) { var firstInterface = controller.GetInterfaces()[0]; serviceCollection.AddTransient(firstInterface, controller); } var helpers = GetTypesImplementing<IHelper>(assemblies); foreach (var controller in helpers) { var firstInterface = controller.GetInterfaces()[0]; serviceCollection.AddSingleton(firstInterface, controller); } }
Ok so back to the main thread of this blog: The main class that checks the registered services is called VaidateIoC and is registered in Sitecore's initialize pipeline as follows:
<pipelines> <initialize> <processor patch:before="processor[@type='Sitecore.Pipelines.Loader.RegisterjQuery, Sitecore.Kernel']" type="Shared.Library.Pipelines.IoC.ValidateIoC, Shared.Library" resolve="true"/> </initialize> </pipelines>
The validation code:
public class ValidateIoC { private const string CONTAINS_GENERIC_PARAMETER = "Type ContainsGenericParameters == true"; private const string VALIDATE_IOC_ENABLED = "ValidateIoC.Enabled"; private const string VALIDATE_IOC_HALT_APPLICATION = "ValidateIoC.HaltApplication"; private const string VALIDATE_IOC_IGNORED_EXCEPTIONS = "ValidateIoC.IgnoredExceptions"; public void Process(PipelineArgs args) { if (!Settings.GetBoolSetting(VALIDATE_IOC_ENABLED, true)) return; var serviceCollection = ServiceLocator.ServiceProvider.GetService<IServiceCollection>(); if (serviceCollection == null) return; IoCLogger.Log.Info(string.Format("IoC Validation Started {0:g}", DateTime.Now)); var result = new IoCMetaData(); foreach (var service in serviceCollection) { var serviceType = service.ServiceType; if (result.ValidTypes.Any(p => p.ServiceType == serviceType.ToString())) { continue; } try { if (serviceType.ContainsGenericParameters) { result.NotValidatedTypes.Add(new ServiceMetaData { ServiceType = serviceType.ToString(), Reason = CONTAINS_GENERIC_PARAMETER }); continue; } var xs = ServiceLocator.ServiceProvider.GetServices(service.ServiceType); foreach(var x in xs) { if (x == null) continue; result.ValidTypes.Add( new ValidServiceMetaData { ServiceType = serviceType.ToString(), ConcreteType = x.GetType().FullName}); //Run External Tests var validators = ServiceLocator.ServiceProvider.GetServices<IValidateIoCValidator>(); foreach (var validator in validators) validator.Validate(x, result, serviceType); } } catch (KeyNotFoundException) { result.ValidTypes.Add(new ValidServiceMetaData { ServiceType = serviceType.ToString() }); } catch (Exception e) { result.Problems.Add(new ServiceMetaData { ServiceType = serviceType.ToString(), Reason = e.Message }); } } var postProcessValidators = ServiceLocator.ServiceProvider.GetServices<IValidateIoCValidatorPostProcess>(); foreach (var validator in postProcessValidators) validator.Validate(result); IoCLogger.Log.Info(JsonConvert.SerializeObject(result, Formatting.Indented)); IoCLogger.Log.Info(string.Format("IoC Validation Finished {0:g}", DateTime.Now)); if (Settings.GetBoolSetting(VALIDATE_IOC_HALT_APPLICATION, false)) { var ignoredServices = Settings.GetSetting(VALIDATE_IOC_IGNORED_EXCEPTIONS, "").Split('|'); if (result.Problems.Select(p => p.ServiceType).Except(ignoredServices).Any()) { args.AbortPipeline(); throw new ApplicationException("IoC Validation has failed and configuration is set to halt the application. See IoC Logs for more info."); } } } }
This class will iterate through each registered service and try to instantiate it, logging the results to a model.
Also at this point the class will execute any services with the IValidateIoCValidator interface against the currently selected registered service.
As an example I created a validator that checked any services registered with the IHelper interface for dependent services that were not registered with an IHelper interface.
In otherwords I didn't want a singleton with dependent services that were not singletons.
public class ValidateIHelperInterfaces : IValidateIoCValidator { private const string ERROR_MESSAGE = "One or More Parameters implements IService or IScoped"; public void Validate(object x, IoCMetaData result, Type serviceType) { //Test to see if Singleton uses non-singleton services if (x is IHelper) { var foundServices = false; var constructors = x.GetType().GetConstructors(); foreach (var constructor in constructors) { var parameters = constructor.GetParameters(); foreach (var parameter in parameters) { if (parameter.ParameterType.GetInterfaces().Contains(typeof(IService)) || parameter.ParameterType.GetInterfaces().Contains(typeof(IScoped))) { foundServices = true; break; } if (foundServices) break; } } if (foundServices) result.Warnings.Add(new ServiceMetaData { ServiceType = serviceType.ToString(), ConcreteType = x.GetType().FullName, Reason = ERROR_MESSAGE }); } } }
After all of the registered services have been checked, additional validators can be run that are not service specific. These are registered with the IValidateIoCValidatorPostProcess interface.
An example of this is where we have an enumeration, where each enumerate corresponds to a service that implements a different version of a generic interface. In the code there is a factory class that resolves these dependent services as a collection of services and then passes these off as and when requested.
My validator checks that there is a service for each enumerate (except Generic).
public class IoCValidateIntegrationServices : IValidateIoCValidatorPostProcess { private const string ERROR_MESSAGE = "Could not find integration service for {0}"; public void Validate(IoCMetaData result) { result.Messages.Add("Validating Integration Services"); var integrationServices = ServiceLocator.ServiceProvider.GetServices<IIntegration>().ToList(); foreach (IntegrationType integrationType in Enum.GetValues(typeof(IntegrationType))) { if (integrationType == IntegrationType.Generic) continue; if (integrationServices.All(p => p.IntegrationType != integrationType)) result.Problems.Add(new ServiceMetaData { Reason = string.Format(ERROR_MESSAGE, integrationType) }); } } }
You end up with logging that looks like:
13700 12:46:43 INFO IoC Validation Started 2019-04-29 12:46 PM 13700 12:46:47 INFO { "NotValidatedTypes": [ { "Reason": "Type ContainsGenericParameters == true", "ServiceType": "Service.Shared.Library.Interfaces.IRepositoryBase`1[T]", "ConcreteType": null } ], "Problems": [ { "Reason": "Object reference not set to an instance of an object.", "ServiceType": "Glass.Mapper.Sc.IGlassHtml", "ConcreteType": null } ], "ValidTypes": [ { "ServiceType": "Sitecore.DependencyInjection.BaseServiceProviderBuilder", "ConcreteType": "Sitecore.DependencyInjection.DefaultServiceProviderBuilder" }, { "ServiceType": "Sitecore.Abstractions.BaseItemManager", "ConcreteType": "Sitecore.Data.Managers.DefaultItemManager" }, { "ServiceType": "Sitecore.Abstractions.BaseTemplateManager", "ConcreteType": "Sitecore.Data.Managers.DefaultTemplateManager" }, { "ServiceType": "Sitecore.Abstractions.BasePublishManager", "ConcreteType": "Sitecore.Publishing.DefaultPublishManager" }, { "ServiceType": "Sitecore.Abstractions.BaseHistoryManager", "ConcreteType": "Sitecore.Data.Managers.DefaultHistoryManager" }, { "ServiceType": "Sitecore.Abstractions.BaseIndexingManager", "ConcreteType": "Sitecore.Data.Managers.DefaultIndexingManager" }, { "ServiceType": "Sitecore.Abstractions.BaseLanguageManager", "ConcreteType": "Sitecore.Data.Managers.DefaultLanguageManager" }, { "ServiceType": "Sitecore.Abstractions.BaseThemeManager", "ConcreteType": "Sitecore.Data.Managers.DefaultThemeManager" }, { "ServiceType": "Sitecore.Abstractions.BaseCacheManager", "ConcreteType": "Sitecore.Caching.DefaultCacheManager" }, { "ServiceType": "Sitecore.Abstractions.BaseFieldTypeManager", "ConcreteType": "Sitecore.Data.Fields.DefaultFieldTypeManager" }, { "ServiceType": "Sitecore.Abstractions.BaseLanguageFallbackFieldValuesManager", "ConcreteType": "Sitecore.Data.LanguageFallback.DefaultLanguageFallbackFieldValuesManager" }, { "ServiceType": "Sitecore.Abstractions.BaseProxyManager", "ConcreteType": "Sitecore.Data.Proxies.DefaultProxyManager" }, { "ServiceType": "Sitecore.Abstractions.BaseSerializationManager", "ConcreteType": "Sitecore.Data.Serialization.DefaultSerializationManager" }, { "ServiceType": "Sitecore.Abstractions.BaseValidatorManager", "ConcreteType": "Sitecore.Data.Validators.DefaultValidatorManager" }, { "ServiceType": "Sitecore.Abstractions.BaseStandardValuesManager", "ConcreteType": "Sitecore.Data.DefaultStandardValuesManager" }, { "ServiceType": "Sitecore.Abstractions.BaseJobManager", "ConcreteType": "Sitecore.Jobs.DefaultJobManager" }, { "ServiceType": "Sitecore.Abstractions.BaseControlManager", "ConcreteType": "Sitecore.Presentation.DefaultControlManager" }, { "ServiceType": "Sitecore.Abstractions.BasePresentationManager", "ConcreteType": "Sitecore.Presentation.DefaultPresentationManager" }, { "ServiceType": "Sitecore.Abstractions.BasePreviewManager", "ConcreteType": "Sitecore.Publishing.DefaultPreviewManager" }, { "ServiceType": "Sitecore.Abstractions.BaseMediaManager", "ConcreteType": "Sitecore.Resources.Media.DefaultMediaManager" }, { "ServiceType": "Sitecore.Abstractions.BaseMediaPathManager", "ConcreteType": "Sitecore.Resources.Media.DefaultMediaPathManager" }, { "ServiceType": "Sitecore.Abstractions.BaseAccessRightManager", "ConcreteType": "Sitecore.Security.AccessControl.DefaultAccessRightManager" }, { "ServiceType": "Sitecore.Abstractions.BaseAuthorizationManager", "ConcreteType": "Sitecore.Security.AccessControl.DefaultAuthorizationManager" }, { "ServiceType": "Sitecore.Abstractions.BaseRolesInRolesManager", "ConcreteType": "Sitecore.Security.Accounts.DefaultRolesInRolesManager" }, { "ServiceType": "Sitecore.Abstractions.BaseUserManager", "ConcreteType": "Sitecore.Security.Accounts.DefaultUserManager" }, { "ServiceType": "Sitecore.Abstractions.BaseDomainManager", "ConcreteType": "Sitecore.SecurityModel.DefaultDomainManager" }, { "ServiceType": "Sitecore.Abstractions.BaseFeedManager", "ConcreteType": "Sitecore.Syndication.DefaultFeedManager" }, { "ServiceType": "Sitecore.Abstractions.BaseLayoutManager", "ConcreteType": "Sitecore.Visualization.DefaultLayoutManager" }, { "ServiceType": "Sitecore.Abstractions.BaseRuleManager", "ConcreteType": "Sitecore.Visualization.DefaultRuleManager" }, { "ServiceType": "Sitecore.Abstractions.BaseTicketManager", "ConcreteType": "Sitecore.Web.Authentication.DefaultTicketManager" }, { "ServiceType": "Sitecore.Abstractions.BaseDistributedPublishingManager", "ConcreteType": "Sitecore.Publishing.DefaultDistributedPublishingManager" }, { "ServiceType": "Sitecore.Data.Managers.LanguageFallbackStrategy", "ConcreteType": "Sitecore.Data.Managers.DefaultLanguageFallbackStrategy" }, { "ServiceType": "Sitecore.Abstractions.BaseLanguageFallbackManager", "ConcreteType": "Sitecore.Data.Managers.DefaultLanguageFallbackManager" }, { "ServiceType": "Sitecore.Abstractions.BaseEventManager", "ConcreteType": "Sitecore.Eventing.DefaultEventManager" }, { "ServiceType": "Sitecore.Abstractions.BaseLinkManager", "ConcreteType": "Sitecore.Links.DefaultLinkManager" }, { "ServiceType": "Sitecore.Abstractions.BaseSiteManager", "ConcreteType": "Sitecore.Sites.DefaultSiteManager" }, { "ServiceType": "Sitecore.Abstractions.BaseScriptFactory", "ConcreteType": "Sitecore.CodeDom.Scripts.DefaultScriptFactory" }, { "ServiceType": "Sitecore.Abstractions.BaseCorePipelineManager", "ConcreteType": "Sitecore.Pipelines.DefaultCorePipelineManager" }, { "ServiceType": "Sitecore.Abstractions.BasePipelineFactory", "ConcreteType": "Sitecore.Pipelines.DefaultPipelineFactory" }, { "ServiceType": "Sitecore.Abstractions.BaseFactory", "ConcreteType": "Sitecore.Configuration.DefaultFactory" }, { "ServiceType": "Sitecore.Abstractions.BaseTranslate", "ConcreteType": "Sitecore.Globalization.DefaultTranslate" }, { "ServiceType": "Sitecore.Abstractions.BaseRuleFactory", "ConcreteType": "Sitecore.Rules.DefaultRuleFactory" }, { "ServiceType": "Sitecore.Abstractions.BaseComparerFactory", "ConcreteType": "Sitecore.Data.Comparers.DefaultComparerFactory" }, { "ServiceType": "Sitecore.Abstractions.BaseLinkStrategyFactory", "ConcreteType": "Sitecore.Links.DefaultLinkStrategyFactory" }, { "ServiceType": "Sitecore.Abstractions.BaseSiteContextFactory", "ConcreteType": "Sitecore.Sites.DefaultSiteContextFactory" }, { "ServiceType": "Sitecore.Abstractions.BaseClient", "ConcreteType": "Sitecore.DefaultClient" }, { "ServiceType": "Sitecore.CodeDom.Scripts.BaseItemScripts", "ConcreteType": "Sitecore.CodeDom.Scripts.DefaultItemScripts" }, { "ServiceType": "Sitecore.Abstractions.BasePlaceholderCacheManager", "ConcreteType": "Sitecore.Caching.Placeholders.DefaultPlaceholderCacheManager" }, { "ServiceType": "Sitecore.Abstractions.BaseArchiveManager", "ConcreteType": "Sitecore.Data.Archiving.DefaultArchiveManager" }, { "ServiceType": "Sitecore.Abstractions.BaseLog", "ConcreteType": "Sitecore.Diagnostics.DefaultLog" }, { "ServiceType": "Sitecore.Abstractions.BaseAuthenticationManager", "ConcreteType": "Sitecore.Security.Authentication.DefaultAuthenticationManager" }, { "ServiceType": "Sitecore.Caching.Placeholders.PlaceholderCacheEventHandler", "ConcreteType": "Sitecore.Caching.Placeholders.PlaceholderCacheEventHandler" }, { "ServiceType": "Sitecore.Caching.BaseCacheConfiguration", "ConcreteType": "Sitecore.Caching.DefaultCacheConfiguration" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Data.Managers.ItemProviderBase,Sitecore.Data.Managers.ItemProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Data.Managers.ItemProviderBase, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Data.Managers.ItemProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Data.Managers.TemplateProvider", "ConcreteType": "Sitecore.Data.Managers.TemplateProvider" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Publishing.PublishProvider,Sitecore.Publishing.PublishProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Publishing.PublishProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Publishing.PublishProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Data.Managers.HistoryProvider", "ConcreteType": "Sitecore.Data.Managers.HistoryProvider" }, { "ServiceType": "Sitecore.Data.Managers.IndexingProvider", "ConcreteType": "Sitecore.Data.Managers.IndexingProvider" }, { "ServiceType": "Sitecore.Data.Managers.LanguageProvider", "ConcreteType": "Sitecore.Data.Managers.LanguageProvider" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Data.LanguageFallback.LanguageFallbackFieldValuesProvider,Sitecore.Data.LanguageFallback.LanguageFallbackFieldValuesCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Data.LanguageFallback.LanguageFallbackFieldValuesProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Data.LanguageFallback.LanguageFallbackFieldValuesCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Data.StandardValuesProvider,Sitecore.Data.StandardValuesProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Data.StandardValuesProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Data.StandardValuesProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Presentation.ControlProvider,Sitecore.Presentation.ControlProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Presentation.ControlProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Presentation.ControlProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Presentation.PresentationProvider,Sitecore.Presentation.PresentationProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Presentation.PresentationProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Presentation.PresentationProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Publishing.PreviewProvider,Sitecore.Publishing.PreviewProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Publishing.PreviewProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Publishing.PreviewProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Resources.Media.MediaProvider", "ConcreteType": "Service.Shared.SharedSource.SitecoreProviders.CustomMediaProvider" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Resources.Media.MediaPathProvider,Sitecore.Resources.Media.MediaPathProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Resources.Media.MediaPathProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Resources.Media.MediaPathProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Security.AccessControl.AccessRightProvider,Sitecore.Security.AccessControl.AccessRightProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Security.AccessControl.AccessRightProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Security.AccessControl.AccessRightProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Security.AccessControl.AuthorizationProvider,Sitecore.Security.AccessControl.AuthorizationProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Security.AccessControl.AuthorizationProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Security.AccessControl.AuthorizationProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Security.Accounts.RolesInRolesProvider,Sitecore.Security.Accounts.RolesInRolesProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Security.Accounts.RolesInRolesProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Security.Accounts.RolesInRolesProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Security.Accounts.UserProvider,Sitecore.Security.Accounts.UserProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Security.Accounts.UserProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Security.Accounts.UserProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.SecurityModel.DomainProvider,Sitecore.SecurityModel.DomainProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.SecurityModel.DomainProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.SecurityModel.DomainProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Eventing.EventProvider,Sitecore.Configuration.Providers.ProviderCollectionBase`1[Sitecore.Eventing.EventProvider]]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Eventing.EventProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Configuration.Providers.ProviderCollectionBase`1[[Sitecore.Eventing.EventProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]], Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Links.LinkProvider,Sitecore.Links.LinkProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Links.LinkProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Links.LinkProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Sites.SiteProvider,Sitecore.Sites.SiteProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Sites.SiteProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Sites.SiteProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Data.Archiving.ArchiveProvider,Sitecore.Data.Archiving.ArchiveProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Data.Archiving.ArchiveProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Data.Archiving.ArchiveProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "Sitecore.Configuration.ProviderHelper`2[Sitecore.Security.Authentication.AuthenticationProvider,Sitecore.Security.Authentication.AuthenticationProviderCollection]", "ConcreteType": "Sitecore.Configuration.ProviderHelper`2[[Sitecore.Security.Authentication.AuthenticationProvider, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Sitecore.Security.Authentication.AuthenticationProviderCollection, Sitecore.Kernel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]]" }, { "ServiceType": "System.Web.HttpContextBase", "ConcreteType": "System.Web.HttpContextWrapper" }, { "ServiceType": "Sitecore.Services.Core.Security.IUserService", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.Security.UserService" }, { "ServiceType": "System.Web.Http.ExceptionHandling.IExceptionLogger", "ConcreteType": "Sitecore.Services.Infrastructure.Web.Http.ExceptionHandling.SitecoreExceptionLogger" }, { "ServiceType": "Sitecore.Services.Infrastructure.Web.Http.ExceptionHandling.SitecoreExceptionLogger", "ConcreteType": "Sitecore.Services.Infrastructure.Web.Http.ExceptionHandling.SitecoreExceptionLogger" }, { "ServiceType": "Sitecore.Services.Core.Diagnostics.ILogger", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.Diagnostics.SitecoreLogger" }, { "ServiceType": "Sitecore.Services.Infrastructure.Sitecore.IHandlerProvider", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.Handlers.HandlerProvider" }, { "ServiceType": "Sitecore.Services.Core.ComponentModel.DataAnnotations.IEntityValidator", "ConcreteType": "Sitecore.Services.Core.ComponentModel.DataAnnotations.EntityValidator" }, { "ServiceType": "System.Web.Http.ExceptionHandling.ExceptionLogger", "ConcreteType": "Sitecore.Services.Infrastructure.Web.Http.ExceptionHandling.SitecoreExceptionLogger" }, { "ServiceType": "Sitecore.Services.Infrastructure.Sitecore.Controllers.AggregateDiscoveryController", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.Controllers.AggregateDiscoveryController" }, { "ServiceType": "Sitecore.Services.Infrastructure.Reflection.BuilderMapping", "ConcreteType": "Sitecore.Services.Infrastructure.Reflection.BuilderMapping" }, { "ServiceType": "Sitecore.Services.Infrastructure.Sitecore.Configuration.IConfigurationSectionProvider", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.Configuration.ConfigurationSectionReader" }, { "ServiceType": "Sitecore.Services.Infrastructure.Net.Http.IRequestOrigin", "ConcreteType": "Sitecore.Services.Infrastructure.Net.Http.HttpRequestOrigin" }, { "ServiceType": "Sitecore.Services.Infrastructure.Sitecore.Configuration.ConfigurationReader", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.Configuration.ConfigurationReader" }, { "ServiceType": "System.Web.Http.HttpConfiguration", "ConcreteType": "System.Web.Http.HttpConfiguration" }, { "ServiceType": "System.Web.Routing.RouteCollection", "ConcreteType": "System.Web.Routing.RouteCollection" }, { "ServiceType": "Sitecore.Services.Infrastructure.Web.Http.IHttpConfiguration", "ConcreteType": "Sitecore.Services.Infrastructure.Web.Http.ServicesConfigurator" }, { "ServiceType": "Sitecore.Services.Core.Configuration.ConfigurationSettings", "ConcreteType": "Sitecore.Services.Core.Configuration.ConfigurationSettings" }, { "ServiceType": "Sitecore.Services.Infrastructure.Sitecore.ConfigurationSettingsAdapter", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.ConfigurationSettingsAdapter" }, { "ServiceType": "System.Reflection.Assembly[]", "ConcreteType": "System.Reflection.Assembly[]" }, { "ServiceType": "Sitecore.Services.Infrastructure.IRuntimeSettings", "ConcreteType": "Sitecore.Services.Infrastructure.RuntimeSettings" }, { "ServiceType": "Sitecore.Services.Infrastructure.Sitecore.RestrictedControllerProvider", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.RestrictedControllerProvider" }, { "ServiceType": "Sitecore.Services.Infrastructure.Sitecore.Configuration.ConfigurationSectionReader", "ConcreteType": "Sitecore.Services.Infrastructure.Sitecore.Configuration.ConfigurationSectionReader" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.AlternatingImageTextController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.AlternatingImageTextController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.HomepageHeroController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.HomepageHeroController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.NavigationController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.NavigationController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.PromoModuleController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.PromoModuleController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.HomepageRichTextController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.HomepageRichTextController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.StoreNewsController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.StoreNewsController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.SimpleBannerController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.SimpleBannerController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.VideoImageController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.VideoImageController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.GenericHeroController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.GenericHeroController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.TrustPilotController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.TrustPilotController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.RichTextController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.RichTextController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.StorageVaultController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.StorageVaultController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.BeforeAndAfterController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.BeforeAndAfterController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.FOneMiniController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.FOneMiniController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.GenericLeadFormController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.GenericLeadFormController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.GlobalController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.GlobalController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.LocationController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.LocationController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.MetaController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.MetaController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.SEOController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.SEOController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.PageController", "ConcreteType": "Service.C1Mini.Web.Areas.C1Mini.Controllers.PageController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1MiniApi.Controllers.AddLinkController", "ConcreteType": "Service.C1Mini.Web.Areas.C1MiniApi.Controllers.AddLinkController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1MiniApi.Controllers.ImagePickerController", "ConcreteType": "Service.C1Mini.Web.Areas.C1MiniApi.Controllers.ImagePickerController" }, { "ServiceType": "Service.C1Mini.Web.Areas.C1MiniApi.Controllers.MegaMenuController", "ConcreteType": "Service.C1Mini.Web.Areas.C1MiniApi.Controllers.MegaMenuController" }, { "ServiceType": "Service.C1Mini.Web.Modules.RichText.Services.IRichTextModuleRepository", "ConcreteType": "Service.C1Mini.Web.Modules.RichText.Services.SitecoreRichTextModuleRepository" }, { "ServiceType": "Service.FOne.Data.UserData.Services.IUserDataRepository", "ConcreteType": "Service.FOne.Data.UserData.Services.MongoDbUserDataRepository" }, { "ServiceType": "Service.FOne.Data.UserData.Services.IRegistrationStateService", "ConcreteType": "Service.FOne.Data.UserData.Services.SessionRegistrationStateService" }, { "ServiceType": "Service.FOne.Data.UserData.Services.ISignInSessionService", "ConcreteType": "Service.FOne.Data.UserData.Services.SignInSessionService" }, { "ServiceType": "Service.FOne.Data.Locations.Services.ILocationRepository", "ConcreteType": "Service.FOne.Data.Locations.Services.MongoDbLocationRepository" }, { "ServiceType": "Service.FOne.Data.ContactCard.Services.IContactCardRepository", "ConcreteType": "Service.FOne.Data.ContactCard.Services.ContactCardRepository" }, { "ServiceType": "Service.FOne.Data.PostalCodeExceptions.Services.IPostalCodeExceptionRepository", "ConcreteType": "Service.FOne.Data.PostalCodeExceptions.Services.SQLPostalCodeExceptionRepository" }, { "ServiceType": "Service.FOne.Data.MultiLocation.Services.IMultiLocationStateService", "ConcreteType": "Service.FOne.Data.MultiLocation.Services.SessionMultiLocationStateService" }, { "ServiceType": "Service.FOne.Data.MultiLocationManager.Services.IMultiLocationSiteRepository", "ConcreteType": "Service.FOne.Data.MultiLocationManager.Services.MongoMultiLocationSiteRepository" }, { "ServiceType": "Service.FOne.Data.MultiLocationManager.Services.IMultiLocationContentManager", "ConcreteType": "Service.FOne.Data.MultiLocationManager.Services.SitecoreMultiLocationContentManager" }, { "ServiceType": "Service.FOne.Data.Factories.Authentication.IFOnePasswordValidatorFactory", "ConcreteType": "Service.FOne.Data.Factories.Authentication.FOnePasswordValidatorFactory" }, { "ServiceType": "Service.FOne.Data.Boards.Services.IBoardsRepository", "ConcreteType": "Service.FOne.Data.Boards.Services.MongoDbBoardsRepository" }, { "ServiceType": "Service.FOne.Data.Authentication.Services.IForgotPasswordService", "ConcreteType": "Service.FOne.Data.Authentication.Services.ForgotPasswordService" }, { "ServiceType": "Service.FOne.Data.Authentication.Services.ISocialUserAuthorizationRepository", "ConcreteType": "Service.FOne.Data.Authentication.Services.SocialUserAuthorizationRepository" }, { "ServiceType": "Service.FOne.Data.Authentication.Services.IUsersRepository", "ConcreteType": "Service.FOne.Data.Authentication.Services.UsersRepository" }, { "ServiceType": "Service.FOne.Data.ProfanityFiltering.Services.IProfanityFilterService", "ConcreteType": "Service.FOne.Data.ProfanityFiltering.Services.WebPurifyProfanityFilterService" }, { "ServiceType": "Service.FOne.Data.Interfaces.IEstimateCalculatorResultsModelFactory", "ConcreteType": "Service.FOne.Data.Product.EstimateCalculatorResultsModelFactory" }, { "ServiceType": "Service.FOne.Data.GeoIp.Services.IIpInfoService", "ConcreteType": "Service.FOne.Data.GeoIp.Services.IpInfoService" }, { "ServiceType": "Service.FOne.Data.PostalCodeExceptions.Services.IPostCodeExceptionSqlDataContext", "ConcreteType": "Service.FOne.Data.PostalCodeExceptions.Services.PostalCodeExceptionsSqlDataContext" }, { "ServiceType": "Service.Shared.Library.Pipelines.IoC.Validators.IValidateIoCValidator", "ConcreteType": "Service.Shared.Library.Pipelines.IoC.Validators.ValidateConstructorArguments" }, { "ServiceType": "Service.Shared.Library.Pipelines.IoC.Validators.IValidateIoCValidator", "ConcreteType": "Service.Shared.Library.Pipelines.IoC.Validators.ValidateIHelperInterfaces" }, { "ServiceType": "Service.Shared.Library.Pipelines.IoC.Validators.IValidateIoCValidator", "ConcreteType": "Service.mNET.Web.Hubs.Validation.IoCHubValidation" }, { "ServiceType": "Service.Shared.Library.Interfaces.IRenderingContext", "ConcreteType": "Service.Shared.Library.Helpers.RenderingContext" }, { "ServiceType": "Service.Shared.Library.Interfaces.ISitecoreContextFactory", "ConcreteType": "Service.Shared.Library.Factory.SitecoreContextFactory" }, { "ServiceType": "Service.Shared.Library.Interfaces.ISitecoreServiceFactory", "ConcreteType": "Service.Shared.Library.Factory.SitecoreServiceFactory" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.AccountController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.AccountController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.AccountManagementController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.AccountManagementController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.BlogController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.BlogController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.CalloutController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.CalloutController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.FOneBaseController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.FOneBaseController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.BoardsController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.BoardsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.CommentsController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.CommentsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.EstimateCalculatorController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.EstimateCalculatorController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.MultiLocationManagerController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.MultiLocationManagerController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.RoomVisualizerController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.RoomVisualizerController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.SafFinderController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.SafFinderController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.SearchController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.SearchController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.StoreNewsController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.StoreNewsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.FlooringGuideController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.FlooringGuideController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.FormsController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.FormsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.GenericController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.GenericController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.InspirationController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.InspirationController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.ProductsController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.ProductsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.GlobalController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.GlobalController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.LocationController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.LocationController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.HeroController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.HeroController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.PromoModuleController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.PromoModuleController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.MetaController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.MetaController" }, { "ServiceType": "Service.FOne.Web.Areas.FOne.Controllers.SSOController", "ConcreteType": "Service.FOne.Web.Areas.FOne.Controllers.SSOController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.FOneBaseApiController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.FOneBaseApiController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.ComparisonController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.ComparisonController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.EstimateCalculatorController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.EstimateCalculatorController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.FlooringGuideCalculatorController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.FlooringGuideCalculatorController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.InspirationController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.InspirationController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.GeneriServicerpetOneController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.GeneriServicerpetOneController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.BoardsController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.BoardsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.WFFMController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.WFFMController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.XDbController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.XDbController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.LocationsController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.LocationsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.SAFFinderController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.SAFFinderController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.SearchController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.SearchController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.SocialMediaController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.SocialMediaController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.BlogController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.BlogController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.CommentsController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.CommentsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.ProductsController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.ProductsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.TrustPilotController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.TrustPilotController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.ModalsController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.ModalsController" }, { "ServiceType": "Service.FOne.Web.Areas.FOneApi.Controllers.UserController", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Controllers.UserController" }, { "ServiceType": "Service.FOne.Web.Interfaces.IChatbotLocationServices", "ConcreteType": "Service.FOne.Web.Services.ChatbotLocationServices" }, { "ServiceType": "Service.FOne.Web.Modules.Trustpilot.Services.ITrustpilotService", "ConcreteType": "Service.FOne.Web.Modules.Trustpilot.Services.TrustpilotService" }, { "ServiceType": "Service.FOne.Web.Modules.Zillow.Services.IZillowService", "ConcreteType": "Service.FOne.Web.Modules.Zillow.Services.ZillowService" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISitecoreItemHelper", "ConcreteType": "Service.FOne.Web.Modules.Utilities.SitecoreItemHelper" }, { "ServiceType": "Service.FOne.Web.Interfaces.ITransactionalEmailHelper", "ConcreteType": "Service.FOne.Web.Modules.Utilities.TransactionalEmailHelper" }, { "ServiceType": "Service.FOne.Web.Modules.SSO.Services.ISsoService", "ConcreteType": "Service.FOne.Web.Modules.SSO.Services.FOneSsoService" }, { "ServiceType": "Service.FOne.Web.Modules.Social.Services.ISocialShareRepository", "ConcreteType": "Service.FOne.Web.Modules.Social.Services.InspirationSocialShareRepository" }, { "ServiceType": "Service.FOne.Web.Modules.Social.Services.ISocialShareRepository", "ConcreteType": "Service.FOne.Web.Modules.Social.Services.SocialShareRepository" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISocialShareRepositoryFactory", "ConcreteType": "Service.FOne.Web.Modules.Social.Factories.SocialShareRepositoryFactory" }, { "ServiceType": "Service.FOne.Web.Modules.SiteSettings.Services.IGetItemService", "ConcreteType": "Service.FOne.Web.Modules.SiteSettings.Services.GetItemService" }, { "ServiceType": "Service.FOne.Web.Modules.Search.Services.ISearchService", "ConcreteType": "Service.FOne.Web.Modules.Search.Services.ProfilingSolrSearchService" }, { "ServiceType": "Service.FOne.Web.Modules.Search.Services.ISearchService", "ConcreteType": "Service.FOne.Web.Modules.Search.Services.SolrSearchService" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISearchServiceFactory", "ConcreteType": "Service.FOne.Web.Modules.Search.Factories.SearchServiceFactory" }, { "ServiceType": "Service.FOne.Web.Modules.RoomVisualizer.Services.IRoomVisualizerService", "ConcreteType": "Service.FOne.Web.Modules.RoomVisualizer.Services.RoomVisualizerService" }, { "ServiceType": "Service.FOne.Web.Modules.MetaData.Services.IMetaDataRepository", "ConcreteType": "Service.FOne.Web.Modules.MetaData.Services.SitecoreMetaDataRepository" }, { "ServiceType": "Service.FOne.Web.Modules.ContactCard.Services.IContactCardSearchServiceRepository", "ConcreteType": "Service.FOne.Web.Modules.ContactCard.Services.ContactCardSearchServiceRepository" }, { "ServiceType": "Service.FOne.Web.Modules.FlooringGuide.Calculators.Services.IFlooringGuideCalculatorService", "ConcreteType": "Service.FOne.Web.Modules.FlooringGuide.Calculators.Services.FlooringGuideCalculatorService" }, { "ServiceType": "Service.FOne.Web.Modules.FlooringGuide.Calculators.Services.ISessionFlooringGuideCalculatorService", "ConcreteType": "Service.FOne.Web.Modules.FlooringGuide.Calculators.Services.SessionFlooringGuideCalculatorService" }, { "ServiceType": "Service.FOne.Web.Modules.Redirect.Services.IAccountRedirectService", "ConcreteType": "Service.FOne.Web.Modules.Redirect.Services.AccountRedirectService" }, { "ServiceType": "Service.FOne.Web.Interfaces.IProductHelper", "ConcreteType": "Service.FOne.Web.Modules.Products.Helpers.ProductHelper" }, { "ServiceType": "Service.FOne.Web.Interfaces.IProductSolrHelper", "ConcreteType": "Service.FOne.Web.Modules.Products.Helpers.ProductSolrHelper" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISolrProductQueryBase", "ConcreteType": "Service.FOne.Web.Modules.Products.Helpers.SolrProductQueryBase" }, { "ServiceType": "Service.FOne.Web.Modules.Products.Compare.Services.IProductService", "ConcreteType": "Service.FOne.Web.Modules.Products.Compare.Services.ProductService" }, { "ServiceType": "Service.FOne.Web.Modules.Products.Compare.Services.IProductsCompareService", "ConcreteType": "Service.FOne.Web.Modules.Products.Compare.Services.ProductsCompareService" }, { "ServiceType": "Service.FOne.Web.Modules.Origination.Services.IOriginationService", "ConcreteType": "Service.FOne.Web.Modules.Origination.Services.OriginationService" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISiteSettingsProvider", "ConcreteType": "Service.FOne.Web.Modules.Localization.Helpers.SiteSettingsProvider" }, { "ServiceType": "Service.FOne.Web.Modules.Comments.Services.ICommentRepository", "ConcreteType": "Service.FOne.Web.Modules.Comments.Services.MongoCommentRepository" }, { "ServiceType": "Service.FOne.Web.Interfaces.IMultiLocationUtilities", "ConcreteType": "Service.FOne.Web.Modules.MultiLocation.Utilities.MultiLocationUtilities" }, { "ServiceType": "Service.FOne.Web.Modules.LMS.Services.ILmsService", "ConcreteType": "Service.FOne.Web.Modules.LMS.Services.ServiceLmsService" }, { "ServiceType": "Service.FOne.Web.Modules.Inspiration.Services.IInspirationItemRepository", "ConcreteType": "Service.FOne.Web.Modules.Inspiration.Services.SitecoreInspirationItemRepository" }, { "ServiceType": "Service.FOne.Web.Interfaces.ICalloutExtensions", "ConcreteType": "Service.FOne.Web.Modules.Inspiration.Utilities.CalloutExtensions" }, { "ServiceType": "Service.FOne.Web.Interfaces.IInspirationSearchIndex", "ConcreteType": "Service.FOne.Web.Modules.Inspiration.Index.InspirationSearchIndex" }, { "ServiceType": "Service.FOne.Web.Modules.Generic.Services.IBeforeAndAfterGalleryService", "ConcreteType": "Service.FOne.Web.Modules.Generic.Services.SitecoreBeforeAndAfterGalleryService" }, { "ServiceType": "Service.FOne.Web.Modules.Generic.Services.IStoreNewsService", "ConcreteType": "Service.FOne.Web.Modules.Generic.Services.StoreNewsService" }, { "ServiceType": "Service.FOne.Web.Modules.Generic.Services.IVideoImageGalleryService", "ConcreteType": "Service.FOne.Web.Modules.Generic.Services.SitecoreVideoImageGalleryService" }, { "ServiceType": "Service.FOne.Web.Interfaces.IStoreNewsIndex", "ConcreteType": "Service.FOne.Web.Modules.Generic.Index.StoreNewsIndex" }, { "ServiceType": "Service.FOne.Web.Modules.Blog.Services.IBlogRepository", "ConcreteType": "Service.FOne.Web.Modules.Blog.Services.SitecoreBlogRepository" }, { "ServiceType": "Service.FOne.Web.Interfaces.IBlogItemProvider", "ConcreteType": "Service.FOne.Web.Modules.Blog.Helpers.BlogItemProvider" }, { "ServiceType": "Service.FOne.Web.Interfaces.IBlogSearchIndex", "ConcreteType": "Service.FOne.Web.Modules.Blog.Index.BlogSearchIndex" }, { "ServiceType": "Service.FOne.Web.Interfaces.IBoardsFlooringCalculatorHelper", "ConcreteType": "Service.FOne.Web.Modules.Boards.Helpers.BoardsFlooringCalculatorHelper" }, { "ServiceType": "Service.FOne.Web.Interfaces.IBoardHelper", "ConcreteType": "Service.FOne.Web.Modules.Boards.Helpers.BoardHelper" }, { "ServiceType": "Service.FOne.Web.Modules.Account.Management.BeforeAndAfterPhotos.Services.IBeforeAndAfterPhotosRepository", "ConcreteType": "Service.FOne.Web.Modules.Account.Management.BeforeAndAfterPhotos.Services.SitecoreBeforeAndAfterPhotosRepository" }, { "ServiceType": "Service.FOne.Web.Modules.Account.SocialMedia.Services.ISocialMedia", "ConcreteType": "Service.FOne.Web.Modules.Account.SocialMedia.Services.Facebook" }, { "ServiceType": "Service.FOne.Web.Modules.Account.SocialMedia.Services.ISocialMedia", "ConcreteType": "Service.FOne.Web.Modules.Account.SocialMedia.Services.GooglePlus" }, { "ServiceType": "Service.FOne.Web.Modules.Account.SocialMedia.Services.ISocialMedia", "ConcreteType": "Service.FOne.Web.Modules.Account.SocialMedia.Services.Twitter" }, { "ServiceType": "Service.FOne.Web.Modules.Account.SocialMedia.Services.ISocialMediaStateService", "ConcreteType": "Service.FOne.Web.Modules.Account.SocialMedia.Services.SocialMediaStateService" }, { "ServiceType": "Service.Shared.Library.Pipelines.IoC.Validators.IValidateIoCValidatorPostProcess", "ConcreteType": "Service.FOne.Web.Modules.Account.SocialMedia.Factories.IoCValidateSocialMediaServices" }, { "ServiceType": "Service.Shared.Library.Pipelines.IoC.Validators.IValidateIoCValidatorPostProcess", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.IoCValidateIntegrationServices" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISocialMediaFactory", "ConcreteType": "Service.FOne.Web.Modules.Account.SocialMedia.Factories.SocialMediaFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IFooterViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Global.FooterViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IHeaderViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Global.HeaderViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.ICommentViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Comments.CommentViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IHeroViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Blog.Hero.HeroViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IBlogHeaderViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Blog.Header.HeaderViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IBlogFooterViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Blog.Footer.FooterViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IBlogDetailViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Blog.Detail.BlogDetailViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IEmailRecoveryPasswordResetViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Account.EmailRecoveryPasswordResetViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IRecoverEmailViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Account.SignIn.RecoverEmailViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IRegistrationStep2ViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Account.Registration.RegistrationStep2ViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IEmailPreferencesViewModelOrchestrator", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Account.Management.EmailPreferencesViewModelOrchestrator" }, { "ServiceType": "Service.FOne.Web.Interfaces.IMyProfileViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Account.Management.MyProfileViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IMyContactInfoViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Account.Management.MyContactInfoViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IMyStoreViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Account.Management.MyStoreViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IStoreNewsDetailsModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.StoreNews.StoreNewsDetailsModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IStoreNewsListingModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.StoreNews.StoreNewsListingModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IHomeInspirationListingViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Inspiration.HomeInspirationListingViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IProductCategoryShopStickNavViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Products.ProductCategoryShopStickNavViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IQuickInfoModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Products.QuickInfoModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISimpleMultiReviewModuleViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Products.SimpleMultiReviewModuleViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IWhatsTrendingViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Products.WhatsTrendingViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IComparisonCategoryTableModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Products.ComparisonCategoryTableModelFactoryFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IProductCategoryFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Products.ProductCategoryFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IProductInstanceViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Products.ProductInstanceViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IListingViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.MultiLocationManager.Listing.ListingViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IMultiLocationMapAndListingViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Location.MultiLocationMapAndListingViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IStoreInformationViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Location.StoreInformationViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISingleStoreLocationViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Location.SingleStoreLocationViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IStoreLocationViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Location.StoreLocationViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IGenericListingCalloutViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Generic.GenericListingCallout.GenericListingCalloutViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISocialAndInteractionViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Generic.SocialAndInteraction.SocialAndInteractionViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IFreeEstimateFormViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Forms.FreeEstimateFormViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISendToStoreFormViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Forms.SendToStoreFormViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IDynamicInspirationCalloutViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Callouts.DynamicInspirationCalloutViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IInspirationCalloutViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Callouts.InspirationCalloutViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.ITrustpilotViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Callouts.TrustpilotViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IEstimatesListingViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Boards.EstimatesListingViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IBoardDetailViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Modules.Boards.BoardDetailViewModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.ISAFFinderOptionFilter", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Models.SAFFinder.SAFFinderOptionFilter" }, { "ServiceType": "Service.FOne.Web.Interfaces.IProductDetailModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Models.Product.ProductDetailModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IProductListingModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Models.Product.ProductListingModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.ITrendingProductModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOneApi.Models.Product.TrendingProductModelFactory" }, { "ServiceType": "Service.FOne.Web.Interfaces.IXDbHelper", "ConcreteType": "Service.FOne.Web.Modules.Utilities.XDbHelper" }, { "ServiceType": "Service.FOne.Web.Interfaces.IDivisionProductSolrUrl", "ConcreteType": "Service.FOne.Web.Modules.Products.Helpers.DivisionProductSolrUrl" }, { "ServiceType": "Service.FOne.Web.Interfaces.IRegistrationStep1ViewModelFactory", "ConcreteType": "Service.FOne.Web.Areas.FOne.Models.Account.Registration.RegistrationStep1ViewModelFactory" }, { "ServiceType": "Microsoft.Extensions.DependencyInjection.IServiceCollection", "ConcreteType": "Microsoft.Extensions.DependencyInjection.ServiceCollection" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.CalendarController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.CalendarController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.CalloutController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.CalloutController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.ContactDirectoryController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.ContactDirectoryController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.DashboardController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.DashboardController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.DiscussionsController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.DiscussionsController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.ErrorController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.ErrorController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.HelpCenterController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.HelpCenterController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.MessagingController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.MessagingController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.MetaController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.MetaController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.mNETBaseController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.mNETBaseController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.NotificationsController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.NotificationsController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.ProfileAndSettingsController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.ProfileAndSettingsController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.SSOController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.SSOController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.GroupsController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.GroupsController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.CustomSectionController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.CustomSectionController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.Pages.SignInController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.Pages.SignInController" }, { "ServiceType": "Service.mNET.Web.Areas.mNET.Controllers.Core.Modules.GlobalModulesController", "ConcreteType": "Service.mNET.Web.Areas.mNET.Controllers.Core.Modules.GlobalModulesController" }, { "ServiceType": "Service.mNET.Web.Areas.mNETApi.Controllers.ResetPasswordController", "ConcreteType": "Service.mNET.Web.Areas.mNETApi.Controllers.ResetPasswordController" }, { "ServiceType": "Service.mNET.Web.Areas.mNETApi.Controllers.BookmarksController", "ConcreteType": "Service.mNET.Web.Areas.mNETApi.Controllers.BookmarksController" }, { "ServiceType": "Service.mNET.Web.Areas.mNETApi.Controllers.MessagingContactsController", "ConcreteType": "Service.mNET.Web.Areas.mNETApi.Controllers.MessagingContactsController" }, { "ServiceType": "Service.mNET.Web.Areas.mNETApi.Controllers.CalendarController", "ConcreteType": "Service.mNET.Web.Areas.mNETApi.Controllers.CalendarController" }, { "ServiceType": "Service.mNET.Web.Areas.mNETApi.Controllers.FileUploadController", "ConcreteType": "Service.mNET.Web.Areas.mNETApi.Controllers.FileUploadController" }, { "ServiceType": "Service.mNET.Web.Interfaces.ISendDiscussionEmailHelper", "ConcreteType": "Service.mNET.Web.Modules.Core.Utilities.SendDiscussionEmailHelper" }, { "ServiceType": "Service.mNET.Web.Interfaces.IWebpageHelpers", "ConcreteType": "Service.mNET.Web.Modules.Core.Utilities.WebpageHelpers" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.BlueVoltRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.CompassDataWarehouse" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.CompassSignUpRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.CTSORepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.CventRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.ServiceNewsWireRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.IMarketRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.LitmosRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.PalmRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.MoundRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.ProductClaimsReportingRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.ProductGatewayRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.RebateTrackerRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.RewardBucksRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.RewardsRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.ImageRelayRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.LmsRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.SalesLogixRepositoryModern" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.SalesLogixRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.SpigitRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegration", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Services.SupplierListingRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IIntegrationOrchestrator", "ConcreteType": "Service.mNET.Web.Modules.Core.SSO.Factory.IntegrationFactory" }, { "ServiceType": "Service.Shared.Alerts.Business.NotificationProcessor.TokenProcessor.TokenProcessors.ITokenProcessor", "ConcreteType": "Service.mNET.Web.Modules.Core.Notifications.Token_Processors.Messages.SenderNameTokenProcessor" }, { "ServiceType": "Service.Shared.Alerts.Business.NotificationProcessor.TokenProcessor.TokenProcessors.ITokenProcessor", "ConcreteType": "Service.mNET.Web.Modules.Core.Notifications.Token_Processors.Discussions.ReplyPosterNameTokenProcessor" }, { "ServiceType": "Service.Shared.Alerts.Business.DigestMessageProcessor.DigestMessageTypeProcessor.TokenProcessors.IMessageTypeProcessor", "ConcreteType": "Service.mNET.Web.Modules.Core.Notifications.Digest.MessageTypeProcessors.DiscussionProcessor" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Impersonation.Services.IImpersonationService", "ConcreteType": "Service.mNET.Web.Modules.Core.Impersonation.Services.SitecoreImpersonationService" }, { "ServiceType": "Service.mNET.Web.Interfaces.IFileViewFactory", "ConcreteType": "Service.mNET.Web.Modules.Core.File_Upload.Factories.FileViewFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IFileUploadServiceFactory", "ConcreteType": "Service.mNET.Web.Modules.Core.File_Upload.Factories.FileUploadServiceFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IMembershipUserSearchService", "ConcreteType": "Service.mNET.Web.Modules.Core.Contacts.Services.MembershipUserSearchService" }, { "ServiceType": "Service.mNET.Web.Interfaces.IContactFactory", "ConcreteType": "Service.mNET.Web.Modules.Core.Contacts.Factories.ContactFactory" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Bookmarks.Services.IUserBookmarkRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.Bookmarks.Services.MongoUserBookmarkRepository" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Search.Services.ISearchService", "ConcreteType": "Service.mNET.Web.Modules.Core.Search.Services.SolrSearchService" }, { "ServiceType": "Service.mNET.Web.Interfaces.IDefaultMessagingService", "ConcreteType": "Service.mNET.Web.Modules.Core.Messaging.Service.Services.DefaultMessagingService" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Messaging.Data.Services.IMongoDbMessageDataRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.Messaging.Data.Services.MongoDbMongoDbMessageDataRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IConversationViewBuilder", "ConcreteType": "Service.mNET.Web.Modules.Core.Messaging.Business.PresentationBuilder.Services.ConversationViewBuilder" }, { "ServiceType": "Service.mNET.Web.Interfaces.IMessageViewBuilder", "ConcreteType": "Service.mNET.Web.Modules.Core.Messaging.Business.PresentationBuilder.Services.MessageViewBuilder" }, { "ServiceType": "Service.mNET.Web.Interfaces.IMessageProcessorOrchestrator", "ConcreteType": "Service.mNET.Web.Modules.Core.Messaging.Business.MessageProcessor.Factories.MessageProcessorOrchestrator" }, { "ServiceType": "Service.mNET.Web.Interfaces.IConversationManagerOrchestrator", "ConcreteType": "Service.mNET.Web.Modules.Core.Messaging.Business.ConversationManager.Factories.ConversationManagerOrchestrator" }, { "ServiceType": "Service.mNET.Web.Interfaces.IConversationProcessorOrchestrator", "ConcreteType": "Service.mNET.Web.Modules.Core.Messaging.Business.ConversationProcessor.Factories.ConversationProcessorOrchestrator" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Groups.Services.IGroupSearchService", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Services.SolrGroupsSearchService" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Groups.Ideas.Services.IChallengeRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Ideas.Services.ChallengeRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IMongoDbIdeaRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Ideas.Services.MongoDbIdeaRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IDefaultGroupDocService", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Docs.Service.DefaultGroupDocService" }, { "ServiceType": "Service.mNET.Web.Interfaces.IMongoDocDataProvider", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Docs.Data.MongoDocDataProvider" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Groups.Events.Services.IGroupEventRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Events.Services.SitecoreGroupEventRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupEventSearchIndex", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Events.Indexes.GroupEventSearchIndex" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Groups.Announcements.Services.IGroupAnnouncementSearchService", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Announcements.Services.SolrAnnouncementSearchService" }, { "ServiceType": "Service.mNET.Web.Interfaces.ISolrAnnouncementSearchIndex", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Announcements.Indexes.SolrAnnouncementSearchIndex" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Discussions.Services.IDiscussionRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.Discussions.Services.DiscussionRepository" }, { "ServiceType": "Service.mNET.Web.Interfaces.IDiscussionSearchIndex", "ConcreteType": "Service.mNET.Web.Modules.Core.Discussions.Indexes.DiscussionSearchIndex" }, { "ServiceType": "Service.mNET.Web.Modules.Core.Cvent.Services.ICventRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.Cvent.Services.CventRepository" }, { "ServiceType": "Service.mNET.Web.Modules.Core.CustomSection.Services.ICustomSectionRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.CustomSection.Services.CustomSectionRepository" }, { "ServiceType": "Service.mNET.Web.Modules.Core.ContactDirectory.Services.IContactDirectoryRepository", "ConcreteType": "Service.mNET.Web.Modules.Core.ContactDirectory.Services.ContactDirectoryRepository" }, { "ServiceType": "Microsoft.AspNet.SignalR.Hubs.IHub", "ConcreteType": "Service.mNET.Web.Hubs.GroupDocHub" }, { "ServiceType": "Microsoft.AspNet.SignalR.Hubs.IHub", "ConcreteType": "Service.mNET.Web.Hubs.IdeaHub" }, { "ServiceType": "Microsoft.AspNet.SignalR.Hubs.IHub", "ConcreteType": "Service.mNET.Web.Hubs.DashboardHub" }, { "ServiceType": "Microsoft.AspNet.SignalR.Hubs.IHub", "ConcreteType": "Service.mNET.Web.Hubs.DiscussionsHub" }, { "ServiceType": "Microsoft.AspNet.SignalR.Hubs.IHub", "ConcreteType": "Service.mNET.Web.Hubs.FirstRunHub" }, { "ServiceType": "Microsoft.AspNet.SignalR.Hubs.IHub", "ConcreteType": "Service.mNET.Web.Hubs.NotificationHub" }, { "ServiceType": "Microsoft.AspNet.SignalR.Hubs.IHub", "ConcreteType": "Service.mNET.Web.Hubs.SearchHub" }, { "ServiceType": "Microsoft.AspNet.SignalR.Hubs.IHub", "ConcreteType": "Service.mNET.Web.Hubs.MessagingHub" }, { "ServiceType": "Service.mNET.Web.Interfaces.IMyConsultantWidgetJsonModelFactory", "ConcreteType": "Service.mNET.Web.Hubs.Models.Dashboard.MyConsultantWidget.MyConsultantWidgetJsonModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupActivityDataJsonModelFactory", "ConcreteType": "Service.mNET.Web.Hubs.Models.Dashboard.GroupActivityWidget.GroupActivityDataJsonModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IRebateTrackerWidgetJsonModelFactory", "ConcreteType": "Service.mNET.Web.Hubs.Models.Dashboard.RebateTrackerWidget.RebateTrackerWidgetJsonModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IClaimsTrackingWidgetJsonModelFactory", "ConcreteType": "Service.mNET.Web.Hubs.Models.Dashboard.ClaimsTrackingWidget.ClaimsTrackingWidgetJsonModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.ISelectAffiliationViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.SSO.SelectAffiliation.SelectAffiliationViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IManageSmartBookmarksFormViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.ProfileAndSettings.SmartBookmarks.ManageSmartBookmarksFormViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IProfileAndSettingsNavigationViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.ProfileAndSettings.Navigation.ProfileAndSettingsNavigationViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IManageExternalUsersModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.ProfileAndSettings.ManageExternalUsers.ManageExternalUsersModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.INotificationsListingViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Notifications.NotificationsListing.NotificationsListingViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IUpcomingEventsRightRailCalloutViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.UpcomingEventsRightRailCallout.UpcomingEventsRightRailCalloutViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupsNavigationViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupsNavigation.GroupsNavigationViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupsLanding.GroupViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupPersonViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupPerson.GroupPersonViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupEventsViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupEvents.GroupEventsViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupEventsRightRailCalloutViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupEventsRightRailCallout.GroupEventsRightRailCalloutViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IConferenceListingViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupEventDetail.ConferenceListingViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupEventDetailViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupEventDetail.GroupEventDetailViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupDocsViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupDocs.GroupDocsViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupDiscussionsViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupDiscussions.GroupDiscussionsViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IGroupAnnouncementsViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Groups.GroupAnnouncements.GroupAnnouncementsViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IDiscussionListingViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Discussions.DiscussionListing.DiscussionListingViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IDiscussionDetailBreadcrumbsViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Discussions.DiscussionDetail.DiscussionDetailBreadcrumbsViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.ISmartBookmarksWidgetViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Dashboard.SmartBookmarkWidget.SmartBookmarksWidgetViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IRecentlyViewedPagesWidgetViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Dashboard.RecentlyViewedPagesWidget.RecentlyViewedPagesWidgetViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IEventRegistrationReminderWidgetViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Dashboard.EventRegistrationReminderWidget.EventRegistrationReminderWidgetViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.ICVENTEventRegistrationReminderWidgetViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Dashboard.CVENTEventRegistrationReminderWidget.CVENTEventRegistrationReminderWidgetViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IDashboardCustomizeWidgetsViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Dashboard.CustomizeWidgets.DashboardCustomizeWidgetsViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.ICountdownWidgetViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Dashboard.CountdownWidget.CountdownWidgetViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.ICircleOfExcellenceViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.Dashboard.CircleOfExcellenceWidget.CircleOfExcellenceViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.INewsDetailViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.CustomSection.NewsDetail.NewsDetailViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.ICustomSectionResourcesFullViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.CustomSection.CustomSectionResourcesFull.CustomSectionResourcesFullViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IContactDirectoryStoresViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.ContactDirectory.Stores.ContactDirectoryStoresViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IContactDirectoryStoreDetailViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.ContactDirectory.StoreDetail.ContactDirectoryStoreDetailViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IContactDirectoryPersonDetailViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.ContactDirectory.PersonDetail.ContactDirectoryPersonDetailViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IContactDirectoryHeaderNavigationViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.ContactDirectory.HeaderNavigation.ContactDirectoryHeaderNavigationViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IContactDirectoryPeopleViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Modules.ContactDirectory.ContactDirectoryPeople.ContactDirectoryPeopleViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IHeaderViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Global.Header.HeaderViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.IBreadcrumbsViewModelFactory", "ConcreteType": "Service.mNET.Web.Areas.mNET.Models.Core.Global.Breadcrumbs.BreadcrumbsViewModelFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.ISolrGroupSearchIndex", "ConcreteType": "Service.mNET.Web.Modules.Core.Groups.Indexes.SolrGroupSearchIndex" }, { "ServiceType": "Service.mNET.Web.Interfaces.IMongoDbCollectionFactory", "ConcreteType": "Service.mNET.Web.Modules.Core.Discussions.Factories.MongoDbCollectionFactory" }, { "ServiceType": "Service.mNET.Web.Interfaces.INewsSearchIndex", "ConcreteType": "Service.mNET.Web.Modules.Core.CustomSection.Indexes.NewsSearchIndex" }, { "ServiceType": "Service.mNET.Data.VisitedNews.Repositories.IVisitedNewsRepository", "ConcreteType": "Service.mNET.Data.VisitedNews.Repositories.VisitedNewsRepository" }, { "ServiceType": "Service.mNET.Data.Core.WidgetData.Services.IWidgetDataRepository", "ConcreteType": "Service.mNET.Data.Core.WidgetData.WidgetDataRepository" }, { "ServiceType": "Service.mNET.Data.Core.Cvent.Services.ICventService", "ConcreteType": "Service.mNET.Data.Core.Cvent.Services.CventService" }, { "ServiceType": "Service.mNET.Data.Core.Contacts.Services.ISitecoreContactCardCreatorService", "ConcreteType": "Service.mNET.Data.Core.Contacts.Services.SitecoreContactCardCreatorService" }, { "ServiceType": "Service.mNET.Data.Core.Contacts.Services.IContactRepository", "ConcreteType": "Service.mNET.Data.Core.Contacts.Services.SitecoreContactRepository" }, { "ServiceType": "Service.mNET.Data.Core.Bookmarks.Services.IBookmarksService", "ConcreteType": "Service.mNET.Data.Core.Bookmarks.Services.BookmarksService" } ], "Messages": [ "Hub Service.mNET.Web.Hubs.GroupDocHub has Empty Constructor", "Hub Service.mNET.Web.Hubs.IdeaHub has Empty Constructor", "Hub Service.mNET.Web.Hubs.DashboardHub has Empty Constructor", "Hub Service.mNET.Web.Hubs.DiscussionsHub has Empty Constructor", "Hub Service.mNET.Web.Hubs.FirstRunHub has Empty Constructor", "Hub Service.mNET.Web.Hubs.NotificationHub has Empty Constructor", "Hub Service.mNET.Web.Hubs.SearchHub has Empty Constructor", "Hub Service.mNET.Web.Hubs.MessagingHub has Empty Constructor", "Validating Social Media Services", "Validating Integration Services" ], "Warnings": [] } 13700 12:46:47 INFO IoC Validation Finished 2019-04-29 12:46 PM
Any results found in the Problems collection would be consider failures and would cause the YSOD to appear and the application to halt. However, you can also configure the validator to ignore some error messages.
I pushed the code to a git repo https://github.com/jwsadler/ValidateSitecoreIoC.git let me know what you think.