Podczas mapowania pojawia się poniższy błąd. Będę wdzięczny za pomoc.
AutoMapper.AutoMapperMappingException: Error mapping types.\r\n\r\nMapping types:\r\nCart -> CartDto\r\nMango.Services.ShoppingCartAPI.Models.Cart -> Mango.Services.ShoppingCartAPI.Models.DTOs.CartDto\r\n\r\nType Map configuration:\r\nCart -> CartDto\r\nMango.Services.ShoppingCartAPI.Models.Cart -> Mango.Services.ShoppingCartAPI.Models.DTOs.CartDto\r\n\r\nDestination Member:\r\nCartDetails\r\n\r\n ---> AutoMapper.AutoMapperMappingException: Error mapping types.\r\n\r\nMapping types:\r\nCartDetails -> CartDetailsDto\r\nMango.Services.ShoppingCartAPI.Models.CartDetails -> Mango.Services.ShoppingCartAPI.Models.DTOs.CartDetailsDto\r\n\r\nType Map configuration:\r\nCartDetails -> CartDetailsDto\r\nMango.Services.ShoppingCartAPI.Models.CartDetails -> Mango.Services.ShoppingCartAPI.Models.DTOs.CartDetailsDto\r\n\r\nDestination Member:\r\nProduct\r\n\r\n ---> AutoMapper.AutoMapperMappingException: Missing type map configuration or unsupported mapping.\r\n\r\nMapping types:\r\nProduct -> ProductDto\r\nMango.Services.ShoppingCartAPI.Models.Product -> Mango.Services.ShoppingCartAPI.Models.DTOs.ProductDto\r\n\r\nDestination Member:\r\nProduct\r\n\r\n at lambda_method102(Closure , Product , ProductDto , ResolutionContext )\r\n at lambda_method39(Closure , Object , CartDto , ResolutionContext )\r\n --- End of inner exception stack trace ---\r\n at lambda_method39(Closure , Object , CartDto , ResolutionContext )\r\n --- End of inner exception stack trace ---\r\n at lambda_method39(Closure , Object , CartDto , ResolutionContext )\r\n at Mango.Services.ShoppingCartAPI.Repository.CartRepository.GetCartByUserId(String userId) in C:\\Users\\Kamil\\Desktop\\Kurs ASP NET Core\\tutorial z udemy 2\\MangoRestaurant\\Mango.Services.ShoppingCartAPI\\Repository\\CartRepository.cs:line 112\r\n at Mango.Services.ShoppingCartAPI.Controllers.CartController.Checkout(CheckoutHeaderDto checkoutHeader) in C:\\Users\\Kamil\\Desktop\\Kurs ASP NET Core\\tutorial z udemy 2\\MangoRestaurant\\Mango.Services.ShoppingCartAPI\\Controllers\\CartController.cs:line 132"
Oto kod:
public async Task<CartDto> GetCartByUserId(string userId)
{
Cart cart = new Cart();
cart.CartHeader = await _dbContext.CartHeaders.FirstOrDefaultAsync(u => u.UserId == userId);
cart.CartDetails = _dbContext.CartDetails.Where(u => u.CartHeader.CartHeaderId ==
cart.CartHeader.CartHeaderId).Include(u => u.Product);
return _mapper.Map<CartDto>(cart);
}
public class CartDto
{
public CartHeaderDto CartHeader { get; set; }
public IEnumerable<CartDetailsDto> CartDetails { get; set; }
}
public class Cart
{
public CartHeader CartHeader { get; set; }
public IEnumerable<CartDetails> CartDetails { get; set; }
}
public class MappingConfig
{
public static MapperConfiguration RegisterMaps()
{
var mappingConfig = new MapperConfiguration(config =>
{
config.CreateMap<ProductDto, Product>();
config.CreateMap<CartHeader, CartHeaderDto>();
config.CreateMap<CartDetails, CartDetailsDto>();
config.CreateMap<Cart, CartDto>();
});
return mappingConfig;
}
}
w Program.cs:
IMapper mapper = MappingConfig.RegisterMaps().CreateMapper();
builder.Services.AddSingleton(mapper);
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());