in src/Modules/SimplCommerce.Module.Catalog/Areas/Catalog/Controllers/ProductPriceApiController.cs [74:115]
public async Task<IActionResult> Put([FromBody] IList<ProductPriceItemForm> productPriceItemForms)
{
var currentUser = await _workContext.GetCurrentUser();
foreach (var item in productPriceItemForms)
{
if (!item.NewOldPrice.HasValue && !item.NewPrice.HasValue)
{
continue;
}
var product = _productRepository.Query().FirstOrDefault(x => x.Id == item.Id);
if(product != null && (User.IsInRole("admin") || product.VendorId == currentUser.VendorId))
{
var productPriceHistory = new ProductPriceHistory
{
Product = product,
CreatedBy = currentUser,
OldPrice = product.OldPrice,
Price = product.Price,
SpecialPrice = product.SpecialPrice,
SpecialPriceStart = product.SpecialPriceStart,
SpecialPriceEnd = product.SpecialPriceEnd
};
if (item.NewOldPrice.HasValue)
{
product.OldPrice = productPriceHistory.OldPrice = item.NewOldPrice.Value;
}
if (item.NewPrice.HasValue)
{
product.Price = item.NewPrice.Value;
productPriceHistory.Price = item.NewPrice.Value;
}
product.PriceHistories.Add(productPriceHistory);
}
}
await _productRepository.SaveChangesAsync();
return Accepted();
}