Untitled
unknown
plain_text
5 years ago
1.2 kB
8
Indexable
public class ProductDao() {
private readonly DbContext _dbContext;
public void InsertProduct(EntityObjectNotDto dto) {
_dbContext.Product.Add(product);
_dbContext.SaveChanges();
}
public void InsertProductDetail(EntityObjectNotDto dto) {
_dbContext.ProductDetail.Add(productDetail);
_dbContext.SaveChanges();
}
}
public class ProductFacade() {
private readonly ProductMapper _mapper;
private readOnly ProductDao _productDao;
// this is a facade method that will do all logics
@Transactional // <-- rollback if anything fails
public void AddProduct(AddProductDto dto) {
var product = _mapper.MapToProduct(dto);
var productDetail = _mapper.MapToProductDetail(dto);
// Dao layer doesn't need your DTO. pass only Entity to dao layer
_productDao.InsertProduct(_mapper.MapToEntity(product));
_productDao.InsertProductDetail(_mapper.MapToEntity(productDetail));
}
}
public class ProductController() {
private readonly ProductFacade _productFacade;
@PostMapping("/products")
public void addProduct() {
_productFacade.addProduct(productFromThinAir);
}
}
Editor is loading...