LynxMapper 1.0.4
See the version list below for details.
dotnet add package LynxMapper --version 1.0.4
NuGet\Install-Package LynxMapper -Version 1.0.4
<PackageReference Include="LynxMapper" Version="1.0.4" />
paket add LynxMapper --version 1.0.4
#r "nuget: LynxMapper, 1.0.4"
// Install LynxMapper as a Cake Addin #addin nuget:?package=LynxMapper&version=1.0.4 // Install LynxMapper as a Cake Tool #tool nuget:?package=LynxMapper&version=1.0.4
Faster Mapper (Transformator) for .NET Core 2 (.NET Standart 2)
# LynxMapper
[![Travis](https://img.shields.io/travis/gromanev/LynxMapper.svg)](https://travis-ci.org/gromanev/LynxMapper)
[![NuGet](https://img.shields.io/nuget/v/LynxMapper.svg)](LynxMapper)
[![license](https://img.shields.io/github/license/gromanev/lynxmapper.svg)](https://github.com/gromanev/LynxMapper)
[![GitHub repo size in bytes](https://img.shields.io/github/repo-size/gromanev/lynxmapper.svg)](https://github.com/gromanev/LynxMapper)
Faster Mapper (Transformator) for .NET Core 2 (.NET Standart 2)
## Description
A simple library for comparing models (mapping) to .NET Core for use in real production.
Mapping is carried out with the help of special methods - transformers (transformators), which gives greater flexibility in use for solving real problems.
## Install
Install LynxMapper and it's dependencies using NuGet.
`Install-Package LynxMapper`
All versions can be found [here](LynxMapper)
## Use
Use LinxMapper is very simple.
### 1. Create Transformator:
#### 1.1 Create Transformator Abstractions:
```csharp
using LynxMapper;
namespace Services.Abstractions.Transformators
{
public interface IUserTransformator: ILynxTransformator
{
UserViewModel ToUserViewModel(Users user);
}
}
```
#### 1.2 Create Transformator Implementations:
```csharp
namespace Services.Implementations.Transformators
{
public class UserTransformator : IUserTransformator
{
public UserViewModel ToUserViewModel(Users user)
{
try
{
return new UserViewModel
{
Name = $"{user.LastName} {user.FirstName} {user.Patronimic}",
Age = (int) ((DateTime.Now - user.YearOfBirth).TotalDays / 365.2425)
};
}
catch (Exception)
{
return null;
}
}
}
}
```
### 2. Register Transformators in Startup.cs:
```csharp
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IUserTransformator, UserTransformator>();
var build = services.BuildServiceProvider();
services.AddLynxMapper(options =>
{
options.RegisterTransformator<UserViewModel, Users>(build.GetService<IUserTransformator>().ToUserViewModel);
});
}
}
```
### 3. Use it!
```csharp
using LynxMapper;
namespace SimpleWebApi.Controllers
{
[Produces("application/json")]
[Route("api/users/[action]")]
public class UserController: Controller
{
private readonly IUserService _userService;
private readonly ILynxMapper _mapper;
public TripController(ILynxServiceProvider LynxServiceProvider, ILynxMapper mapper)
{
_userService = LynxServiceProvider.UserService;
_mapper = mapper;
}
/// <summary>
/// Get list all users
/// </summary>
/// <returns></returns>
[HttpGet]
[Produces("application/json", Type = typeof(ICollection<UserViewModel>))]
public async Task<IActionResult> GetAllUsers()
{
try
{
var users = await _userService.GetAllUsersAsync();
var result = users.Select(x => _mapper.Map<UserViewModel, Users>(x)).ToList();
return Ok(result);
}
catch (Exception)
{
return BadRequest("Users bad request.");
}
}
}
}
```
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.AspNetCore.Http.Abstractions (>= 2.0.1)
- Microsoft.Extensions.DependencyInjection (>= 2.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 2.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.