public IActionResult Purchase(bool succesful = true) { ViewData["UserID"] = User.FindFirstValue(ClaimTypes.NameIdentifier); var vm = new AdvertPurchaseViewModel() { Successful = succesful, Businesses = _businessManager.GetBusinesses().Data, Packages = _packageManager.GetPackages(PackageType.Advert).Data }; return(View(vm)); }
public IActionResult Purchase(AdvertPurchaseViewModel vm) { if (ModelState.IsValid) { string userID = User.FindFirstValue(ClaimTypes.NameIdentifier); Package selectedPackage = _packageManager.GetPackage(vm.SelectedPackageID); if (selectedPackage != null) { if (_creditManager.SubtractCredit(userID, selectedPackage.Price)) { Advert newAdvert = new Advert { BusinessID = vm.BusinessID, Shows = selectedPackage.Amount }; if (vm.PhotoData != null) { using (var ms = new MemoryStream()) { vm.PhotoData.CopyTo(ms); newAdvert.PhotoData = ms.ToArray(); } } newAdvert = _advertManager.CreateAdvert(newAdvert); // Create empty order Order advertOrder = new Order { UserID = userID, OrderType = OrderType.AdvertPurchase, Status = OrderStatus.Finished }; advertOrder = _orderManager.CreateOrder(advertOrder); // Create advertline and link to order AdvertLine advertLine = new AdvertLine { OrderID = advertOrder.ID, AdvertID = newAdvert.ID, OriginalShows = newAdvert.Shows, PricePaid = selectedPackage.Price }; _advertLineManager.CreateAdvertLine(advertLine); return(RedirectToAction(nameof(Index))); } else { return(RedirectToAction(nameof(Purchase), new { succesful = false } )); } } else { return(RedirectToAction(nameof(Purchase), new { succesful = false } )); } } ViewData["UserID"] = User.FindFirstValue(ClaimTypes.NameIdentifier); return(View(vm)); }