AutoMapper - bondaigames/ASP.NET-Core-Documentation GitHub Wiki

  • Create MappingConfig.cs
using AutoMapper;
using Services.CouponAPI.Models;
using Services.CouponAPI.Models.Dto;

namespace Services.CouponAPI
{
    public class MappingConfig
    {
        public static MapperConfiguration RegisterMaps() 
        {
            var mappingConfig = new MapperConfiguration(config =>
            {
                config.CreateMap<CouponDto, Coupon>().ReverseMap();
            });
            return mappingConfig;
        }
    }
}
  • Add to Program.cs
builder.Services.AddDbContext<AppDbContext>(option =>
{
    option.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"));
});

IMapper mapper = MappingConfig.RegisterMaps().CreateMapper();
builder.Services.AddSingleton(mapper);
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());

  • Add to constructor CouponAPIController
private IMapper _mapper;

public CouponAPIController(AppDbContext db, IMapper mapper)
{
    _db = db;
    _mapper = mapper;
    _response = new ResponseDto();
}
  • Apply Automapper to API
[HttpGet]
public ResponseDto Get()
{
    try
    {
        IEnumerable<Coupon> objList = _db.Coupons.ToList();
        _response.Result = _mapper.Map<IEnumerable<CouponDto>>(objList);
    }
    catch (Exception ex)
    {
        _response.IsSuccess = false;
        _response.Message = ex.Message;
    }
    return _response;
}

[HttpGet]
[Route("{id:int}")]
public ResponseDto Get(int id)
{
    try
    {
        Coupon obj = _db.Coupons.First(u => u.CouponId == id);
        _response.Result = _mapper.Map<CouponDto>(obj);
    }
    catch (Exception ex)
    {
        _response.IsSuccess = false;
        _response.Message = ex.Message;
    }
    return _response;
}
⚠️ **GitHub.com Fallback** ⚠️