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;
}
}
}
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();
}
[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;
}