"Fix-Use-short-IDs-for-product-buttons-and-simplify-to-Buy-button"
This commit is contained in:
parent
694ce15549
commit
8fb8c56d9b
@ -97,7 +97,11 @@ namespace TeleBot.Handlers
|
||||
break;
|
||||
|
||||
case "product":
|
||||
await HandleProductDetail(bot, callbackQuery.Message, session, Guid.Parse(data[1]));
|
||||
{
|
||||
var (_, productId, _, _) = _mapper.ParseCallback(callbackQuery.Data);
|
||||
if (productId.HasValue)
|
||||
await HandleProductDetail(bot, callbackQuery.Message, session, productId.Value);
|
||||
}
|
||||
break;
|
||||
|
||||
case "qty":
|
||||
|
||||
@ -30,17 +30,20 @@ namespace TeleBot.Services
|
||||
private readonly ILogger<ProductCarouselService> _logger;
|
||||
private readonly HttpClient _httpClient;
|
||||
private readonly MenuBuilder _menuBuilder;
|
||||
private readonly CallbackDataMapper _mapper;
|
||||
private readonly string _imageCachePath;
|
||||
|
||||
public ProductCarouselService(
|
||||
IConfiguration configuration,
|
||||
ILogger<ProductCarouselService> logger,
|
||||
HttpClient httpClient,
|
||||
MenuBuilder menuBuilder)
|
||||
MenuBuilder menuBuilder,
|
||||
CallbackDataMapper mapper)
|
||||
{
|
||||
_configuration = configuration;
|
||||
_logger = logger;
|
||||
_menuBuilder = menuBuilder;
|
||||
_mapper = mapper;
|
||||
_httpClient = httpClient;
|
||||
_imageCachePath = Path.Combine(Environment.CurrentDirectory, "image_cache");
|
||||
|
||||
@ -97,12 +100,12 @@ namespace TeleBot.Services
|
||||
);
|
||||
}
|
||||
|
||||
// Add button for this product
|
||||
// Add Buy button for this product (simplified - just "Buy" since product info is in caption)
|
||||
productButtons.Add(new[]
|
||||
{
|
||||
InlineKeyboardButton.WithCallbackData(
|
||||
$"🛒 {product.Name} - ${product.Price:F2}",
|
||||
$"product:{product.Id}"
|
||||
$"🛒 Buy {product.Name}",
|
||||
_mapper.BuildCallback("product", product.Id)
|
||||
)
|
||||
});
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@ namespace TeleBot
|
||||
var mapper = new TeleBot.Services.CallbackDataMapper();
|
||||
var menuBuilder = new TeleBot.UI.MenuBuilder(mapper);
|
||||
|
||||
var carouselService = new ProductCarouselService(config, logger, httpClient, menuBuilder);
|
||||
var carouselService = new ProductCarouselService(config, logger, httpClient, menuBuilder, mapper);
|
||||
|
||||
// Test image URL validation
|
||||
var validUrls = new[]
|
||||
@ -48,7 +48,7 @@ namespace TeleBot
|
||||
var mapper = new TeleBot.Services.CallbackDataMapper();
|
||||
var menuBuilder = new TeleBot.UI.MenuBuilder(mapper);
|
||||
|
||||
var carouselService = new ProductCarouselService(config, logger, httpClient, menuBuilder);
|
||||
var carouselService = new ProductCarouselService(config, logger, httpClient, menuBuilder, mapper);
|
||||
|
||||
// Create a test product with image
|
||||
var testProduct = new Product
|
||||
|
||||
Loading…
Reference in New Issue
Block a user