Get out from smog – part V
Today post will be about depencendy injection.And run all the written functions as a whole. Uses for this Autofac and Autofac.Mvc – to inject depencencies on the contollers.
I created class to register depencencies.
public class AutofacConfig { public static void ConfigureAutofac() { var builder = new ContainerBuilder(); builder.RegisterControllers(typeof(MvcApplication).Assembly); builder.RegisterType<GetInfoAboutLongitude>().As<IGetInfoAboutCoordiateStation>(); builder.RegisterType<ParseJsonToList>().As<IParseJsonToListAboutMeasureStation>(); builder.RegisterType<ReturnNearestStationsIn100Km>().As<IReturnNearestStation>(); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); } }
We register the interface to a particular class and the ability to inject into the contoller.
Now inject interface into the contoller constructor.
private readonly IParseJsonToListAboutMeasureStation _parseJsonToListAboutMeasureStation; private readonly IGetInfoAboutCoordiateStation _getInfoAboutCoordiateStation; private readonly IReturnNearestStation _returnNearestStation; public HomeController(IParseJsonToListAboutMeasureStation parseJsonToListAboutMeasureStation, IGetInfoAboutCoordiateStation getInfoAboutCoordiateStation, IReturnNearestStation returnNearestStation) { _parseJsonToListAboutMeasureStation = parseJsonToListAboutMeasureStation; _getInfoAboutCoordiateStation = getInfoAboutCoordiateStation; _returnNearestStation = returnNearestStation; }
Thanks to this magician we can now call our functions like this:
public ActionResult Coordinate(string lat,string lon) { var latitudes = double.Parse(lat, CultureInfo.InvariantCulture); var longitudes = double.Parse(lon, CultureInfo.InvariantCulture); var model = _parseJsonToListAboutMeasureStation.ParseStringToArray(); model = _getInfoAboutCoordiateStation.GetLongitudeAfterAdress(model); model = _returnNearestStation.ReturnNearestStation(model, latitudes, longitudes); return View(); }
Thanks to this, we have received the nears measuring station within a radius of 100 km from the user’s location.
In the next step I will try to find the cleanest air among from this stactions.
Link to the project: HERE