Thursday, October 18, 2018
Dependency Injection and Registering a custom controller in Sitecore MVC
1. In the controller:
using System;
using System.Web.Mvc;
using Feature.Salesforce.Models;
using Sitecore.XConnect;
using Sitecore.XConnect.Client;
using System.ServiceModel;
using Feature.Salesforce.Repositories;
using Xcentium.SitecoreAsAService.Feature.Salesforce.SFMC.ServiceReference;
namespace Xcentium.SitecoreAsAService.Feature.Salesforce.Controllers
{
public class SalesforceController : System.Web.Mvc.Controller
{
private readonly ISalesforceRepository _salesforceRepository;
public SalesforceController(ISalesforceRepository salesforceRepository)
{
_salesforceRepository = salesforceRepository;
}
public ActionResult RequestForInformationForm()
{
return View("RequestForInformationForm");
}
public ActionResult SubscriberForm()
{
return View("SubscriberForm");
}
[HttpPost]
public ActionResult RequestForImformation(RequestForInformation model)
{
String result = _salesforceRepository.CreateLead(model);
return View("LeadCreated");
}
....
2. In a config file:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<services>
<configurator type="Xcentium.SitecoreAsAService.Feature.Salesforce.DependencyInjection.ServicesConfigurator, Xcentium.SitecoreAsAService.Feature.Salesforce"/>
</services>
</sitecore>
</configuration>
3. In the DependencyInjection folder:
using Feature.Salesforce.Repositories;
using Microsoft.Extensions.DependencyInjection;
using Sitecore.DependencyInjection;
using Xcentium.SitecoreAsAService.Feature.Salesforce.Controllers;
namespace Xcentium.SitecoreAsAService.Feature.Salesforce.DependencyInjection
{
public class ServicesConfigurator : IServicesConfigurator
{
public void Configure(IServiceCollection serviceCollection)
{
serviceCollection.AddScoped<ISalesforceRepository, SalesforceRepository>();
serviceCollection.AddTransient(typeof(SalesforceController));
}
}
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment