Skip to content

raulnq/Jal.Converter

Repository files navigation

Jal.Converter Build status NuGet Coverage Status BCH compliance

Just another library to convert classes

How to use?

Default service locator

Create an instance of the locator

var locator = new ServiceLocator();

Create your converter class

public class CustomerRequestCustomerConverter : AbstractConverter<CustomerRequest, Customer>
{
	public override Customer Convert(CustomerRequest source)
	{
		return new Customer()
				{
					Name = source.Name,
					Age = source.Age,
					Category = "None"
				};
	}
}

Register your converter

serviceLocator.Register(typeof(IConverter<CustomerRequest, Customer>), new CustomerRequestCustomerConverter());

Create a instance of the IModelConverter interface

modelConverter = ModelConverter.Create(servicelocator);

Use the IModelConverter interface

var customerRequest = new CustomerRequest
{
	Name = name,
	Age = age
};

var customer = modelConverter.Convert<CustomerRequest, Customer>(customerRequest);  

Castle Windsor as service locator NuGet

Note: The Jal.Locator.CastleWindsor library is needed.

Setup the IoC container

var container = new WindsorContainer();

Install the Jal.Locator.CastleWindsor library

container.Install(new ServiceLocatorInstaller());

Install the Jal.Converter library

container.Install(new ConverterInstaller());

Create your converter class

public class CustomerRequestCustomerConverter : AbstractConverter<CustomerRequest, Customer>
{
	public override Customer Convert(CustomerRequest source)
	{
		return new Customer()
				{
					Name = source.Name,
					Age = source.Age,
					Category = "None"
				};
	}
}

Register your converter class in the IoC container

container.Register(Component.For<IConverter<CustomerRequest, Customer>>().ImplementedBy<CustomerRequestCustomerConverter>());

Resolve and use an instance of IModelConverter

var modelConverter = container.Resolve<IModelConverter>();

var customerRequest = new CustomerRequest
{
	Name = name,
	Age = age
};

var customer = modelConverter.Convert<CustomerRequest, Customer>(customerRequest);

LightInject as service locator NuGet

Note: The Jal.Locator.LightInject library is needed.

Setup the LightInject container

var container = new ServiceContainer();

Install the Jal.Locator.LightInject library

container.RegisterFrom<ServiceLocatorCompositionRoot>();

Install the Jal.Converter library

container.RegisterConverter();

Create your converter class

public class CustomerRequestCustomerConverter : AbstractConverter<CustomerRequest, Customer>
{
	public override Customer Convert(CustomerRequest source)
	{
		return new Customer()
				{
					Name = source.Name,
					Age = source.Age,
					Category = "None"
				};
	}
}

Register your converter class in the IoC container

container.Register<IConverter<CustomerRequest, Customer>, CustomerRequestCustomerConverter>();

Resolve and use an instance of IModelConverter

var modelConverter = container.GetInstance<IModelConverter>();

var customerRequest = new CustomerRequest
{
	Name = name,
	Age = age
};

var customer = modelConverter.Convert<CustomerRequest, Customer>(customerRequest);

AutoMapper as converter NuGet

Note: The Jal.Converter.AutoMapper library is needed.

Setup AutoMapper library instead of create your own converter

Mapper.Initialize(a =>
{
	a.CreateMap<CustomerRequest, Customer>();
});

About

Just another library to convert classes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published