PIAPS_CW/WebApp/Pages/ProductPage.cshtml.cs

52 lines
2.0 KiB
C#

using Contracts.BindingModels;
using Contracts.ViewModels;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace WebApp.Pages
{
public class ProductPageModel : PageModel
{
public ProductViewModel productModel { get; set; }
public SaleViewModel saleModel { get; set; }
public MediaFileViewModel mediaFileModel { get; set; }
public Dictionary<Guid, List<MediaFileViewModel>> MediaByProductsModel { get; set; }
public void OnGet(Guid id)
{
productModel = APIClient.GetRequest<ProductViewModel>($"Product/GetProduct?id={id}");
saleModel = APIClient.GetRequest<SaleViewModel>($"Sale/GetSaleByProduct?id={id}");
}
public byte[] GetMediaByProduct(ProductViewModel productModel)
{
MediaByProductsModel = APIClient.GetRequest<Dictionary<Guid, List<MediaFileViewModel>>>($"MediaFile/GetByProducts");
MediaByProductsModel.TryGetValue(productModel.Id, out List<MediaFileViewModel> models);
return models[0].Image;
}
public List<MediaFileViewModel> GetAllMediaFilesByProduct(ProductViewModel productModel)
{
MediaByProductsModel = APIClient.GetRequest<Dictionary<Guid, List<MediaFileViewModel>>>($"MediaFile/GetByProducts");
MediaByProductsModel.TryGetValue(productModel.Id, out List<MediaFileViewModel> models);
return models;
}
public IActionResult OnPostAsync(int count, double price, Guid productId, string productName)
{
var model = new CartItemBindingModel()
{
Id = new Guid(),
DateCreated = DateTime.Now,
ProductId = productId,
ProductName = productName,
Count = count,
UserId = new Guid(this.GetUserId())
};
APIClient.PostRequest($"CartItem/Create/", model);
return RedirectToPage("Cart");
}
}
}