using AutoMapperConfiguration; using Microsoft.AspNetCore.Mvc; using PCC.Services; using PCC.Services.Models.Parts; using PCC.Web.Models.Binding; using System.Threading.Tasks; namespace PCC.Web.Controllers { public class PartsController : Controller { private readonly ICloudinaryService cloudinaryService; private readonly IPartsService partsService; public PartsController(ICloudinaryService cloudinaryService, IPartsService partsService) { this.cloudinaryService = cloudinaryService; this.partsService = partsService; } [HttpGet] public IActionResult Create() { return View(); } [HttpPost("/Parts/Create/Processor")] public async Task CreateProcessor(CreateProcessorBindingModel createProcessorBindingModel) { ProcessorServiceModel serviceModel = createProcessorBindingModel.To(); string url = await this.cloudinaryService.UploadImage(createProcessorBindingModel.FileUpload); serviceModel.ImageUrl = url; bool result = await this.partsService.CreateProcessorPart(serviceModel); return Redirect("/"); } [HttpPost("/Parts/Create/GPU")] public async Task CreateGPU(CreateGPUBindingModel createGPUBindingModel) { GPUServiceModel serviceModel = createGPUBindingModel.To(); string url = await this.cloudinaryService.UploadImage(createGPUBindingModel.FileUpload); serviceModel.ImageUrl = url; bool result = await this.partsService.CreateGPUPart(serviceModel); return Redirect("/"); } [HttpPost("/Parts/Create/RAM")] public async Task CreateRAM(CreateRAMBindingModel createRAMBindingModel) { RAMServiceModel serviceModel = createRAMBindingModel.To(); string url = await this.cloudinaryService.UploadImage(createRAMBindingModel.FileUpload); serviceModel.ImageUrl = url; bool result = await this.partsService.CreateRAMPart(serviceModel); return Redirect("/"); } [HttpPost("/Parts/Create/Motherboard")] public async Task CreateMotherboard(CreateMotherboardBindingModel createMotherboardBindingModel) { MotherboardServiceModel serviceModel = createMotherboardBindingModel.To(); string url = await this.cloudinaryService.UploadImage(createMotherboardBindingModel.FileUpload); serviceModel.ImageUrl = url; bool result = await this.partsService.CreateMotherboardPart(serviceModel); return Redirect("/"); } [HttpPost("/Parts/Create/HardDrive")] public async Task CreateHardDrive(CreateHardDiskBindingModel createHardDiskBindingModel) { HardDiskServiceModel serviceModel = createHardDiskBindingModel.To(); string url = await this.cloudinaryService.UploadImage(createHardDiskBindingModel.FileUpload); serviceModel.ImageUrl = url; bool result = await this.partsService.CreateHardDiskPart(serviceModel); return Redirect("/"); } [HttpPost("/Parts/Create/PowerSupply")] public async Task CreatePowerSupply(CreatePowerSupplyBindingModel createPowerSupplyBindingModel) { PowerSupplyServiceModel serviceModel = createPowerSupplyBindingModel.To(); string url = await this.cloudinaryService.UploadImage(createPowerSupplyBindingModel.FileUpload); serviceModel.ImageUrl = url; bool result = await this.partsService.CreatePowerSupplyPart(serviceModel); return Redirect("/"); } } }