public AdvertLine CreateAdvertLine(AdvertLine advertLine)
        {
            if (advertLine == null)
            {
                throw new ArgumentNullException(nameof(advertLine));
            }

            _context.AdvertLines.Add(advertLine);
            _context.SaveChanges();

            return(advertLine);
        }
        public AdvertLine EditAdvertLine(AdvertLine advertLine)
        {
            if (advertLine == null)
            {
                throw new ArgumentNullException(nameof(advertLine));
            }

            _context.Entry(advertLine).State = EntityState.Modified;
            _context.SaveChanges();

            return(advertLine);
        }
示例#3
0
 public void ReduceAdvertViewCount()
 {
     foreach (Advert advert in GetAdverts().Data)
     {
         if (advert.Shows > 1)
         {
             advert.Shows--;
             EditAdvert(advert);
         }
         else
         {
             AdvertLine linkedLine = _advertLineManager.GetAdvertLineByAdvertID(advert.ID);
             if (linkedLine != null)
             {
                 linkedLine.AdvertID = null;
                 _advertLineManager.EditAdvertLine(linkedLine);
             }
             DeleteAdvert(advert.ID);
         }
     }
 }
示例#4
0
        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));
        }