Beispiel #1
0
        public async Task GrabNzbFromCartAsync_Returns_An_Nzb_File_Stream_Result_With_Forwarded_Experimental_Headers()
        {
            var ms    = new MemoryStream();
            var req   = TestHelper.CreateHttpRequest("https://nzb.mtighe.dev/api/cart/nzb/123");
            var entry = new CartEntry();

            _cartTable.SetupOperation(TableOperationType.Retrieve, () => entry);
            _authService.Setup(s => s.IsAuthenticated(req)).ReturnsAsync(true);
            _client.Setup(c => c.GetNzbStreamAsync(entry)).ReturnsAsync(
                (
                    ms,
                    new[]
            {
                new KeyValuePair <string, StringValues>("x-dnzb-site", "sitename"),
                new KeyValuePair <string, StringValues>("x-dnzb-category", "misc > other")
            }
                ));

            var result = await _function.GrabNzbFromCartAsync(req, _cartTable.Object, _log.Object, "123");

            _cartTable.VerifyOperation(TableOperationType.Retrieve);
            var fileResult = Assert.IsType <FileStreamResult>(result);

            Assert.Equal("application/x+nzb", fileResult.ContentType);
            var respHeaders = req.HttpContext.Response.Headers;

            Assert.Equal("sitename", respHeaders["x-dnzb-site"]);
            Assert.Equal("misc > other", respHeaders["x-dnzb-category"]);
            ms.Dispose();
        }
Beispiel #2
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,EntryItemId,UserId,Quantity")] CartEntry cartEntry)
        {
            if (id != cartEntry.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cartEntry);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CartEntryExists(cartEntry.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(cartEntry));
        }
Beispiel #3
0
        public async Task <IActionResult> RemoveOne(CartEntry entry)
        {
            var cart = this.UserShoppingCart();

            cart.decreaseAmountByOne(entry.SkuCode);
            this.SaveCart(cart);
            return(RedirectToAction("ViewCart"));// await ViewCart();
        }
Beispiel #4
0
        public async Task <IActionResult> RemoveProduct(CartEntry entry)
        {
            var cart = this.UserShoppingCart();

            cart.removeFromCart(entry.SkuCode);
            this.SaveCart(cart);
            return(RedirectToAction("ViewCart"));
        }
 public static CartEntryViewModel ToViewModel(this CartEntry entry) => new CartEntryViewModel
 {
     DetailsUrl  = entry.DetailsUrl,
     Category    = entry.Category,
     Description = entry.Description,
     GrabUrl     = entry.GrabUrl,
     Id          = entry.RowKey,
     PublishDate = entry.PublishDate,
     Title       = entry.Title
 };
Beispiel #6
0
        public async Task <IActionResult> Create([Bind("Id,EntryItemId,UserId,Quantity")] CartEntry cartEntry)
        {
            if (ModelState.IsValid)
            {
                _context.Add(cartEntry);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(cartEntry));
        }
        public async Task ExecuteAsync_Persists_A_New_CartEntry()
        {
            var e = new CartEntry();

            _table.SetupOperation(e, TableOperationType.Insert);
            var cmd = new AddToCartCommand(e);

            await cmd.ExecuteAsync(_table.Object);

            _table.VerifyOperation(e, TableOperationType.Insert);
        }
Beispiel #8
0
//////////////////////////////////////////////////////////////
/// Client Calls
//////////////////////////////////////////////////////////////

        public void AddEntry([Bind("Id,EntryItemId,UserId,Quantity")] CartEntry cartEntry)
        {
            if (cartEntry != null)
            {
                var dupEntry = _context.CartEntries.SingleOrDefault(e =>
                                                                    (e.UserId == cartEntry.UserId && e.EntryItemId == cartEntry.EntryItemId));
                if (dupEntry == null)
                {
                    _context.Add(cartEntry);
                    _context.SaveChanges();
                }
            }
        }
        public ActionResult Cart()
        {
            CartEntry VE  = new CartEntry();
            int       uid = Convert.ToInt32(Session["USER_ID"].ToString());

            VE.CARTITEMLIST = (from a in DB.CART_ITEM
                               join b in DB.CART on a.CART_ID equals b.CART_ID into x
                               from b in x.DefaultIfEmpty()
                               join c in DB.ITEM on a.ITEM_CD equals c.ITEM_CD
                               where b.USER_ID == uid && b.STATUS == "A"
                               select new CARTITEMLIST()
            {
                ITEM_CD = a.ITEM_CD,
                ITEM_NM = c.ITEM_NM,
                PRICE = c.PRICE,
                QNTY = a.QNTY.ToString(),
                IMG = c.IMG,
                CART_ID = a.CART_ID,
            }).ToList();
            if (VE.CARTITEMLIST != null && VE.CARTITEMLIST.Count() > 0)
            {
                VE.CART_ID = VE.CARTITEMLIST[0].CART_ID;
            }

            double total    = 0;
            double totalgst = 0;

            for (int i = 0; i <= VE.CARTITEMLIST.Count - 1; i++)
            {
                if (VE.CARTITEMLIST[i].IMG != null)
                {
                    string filenm   = VE.CARTITEMLIST[i].IMG;
                    string filepath = Server.MapPath("~/Content/ItemImage/" + filenm.ToString());
                    VE.CARTITEMLIST[i].IMG_FILE = DocpathToBase64(filepath);
                    var mimetype = MimeMapping.GetMimeMapping(filenm);
                    var mimeurl  = "data:" + mimetype + ";base64,";
                    VE.CARTITEMLIST[i].IMG_FILE = (mimeurl + VE.CARTITEMLIST[i].IMG_FILE);
                    //VE.ITEMLIST[i].IMG_FILE = "~/Content/ItemImage/" + VE.ITEMLIST[i].IMG;
                }
                double price = Convert.ToDouble(VE.CARTITEMLIST[i].QNTY) * Convert.ToDouble(VE.CARTITEMLIST[i].PRICE);
                VE.CARTITEMLIST[i].GSTAMT     = ((Convert.ToDouble(VE.CARTITEMLIST[i].PRICE)) * 0.18).ToString("F2");
                VE.CARTITEMLIST[i].TOTALPRICE = price.ToString("F2");
                total    += Convert.ToDouble(VE.CARTITEMLIST[i].TOTALPRICE);
                totalgst += Convert.ToDouble(VE.CARTITEMLIST[i].GSTAMT);
            }
            ViewBag.totalgst = (total * 0.18).ToString("C2");
            ViewBag.total    = total.ToString("C2");
            ViewBag.totalamt = (total + (total * 0.18)).ToString("C2");
            CartUpdate();
            return(View(VE));
        }
Beispiel #10
0
        public async Task GrabNzbFromCartAsync_Returns_Not_Found_When_The_Nzb_Could_Not_Be_Grabbed()
        {
            var req   = TestHelper.CreateHttpRequest("https://nzb.mtighe.dev/api/cart/nzb/123");
            var entry = new CartEntry();

            _cartTable.SetupOperation(TableOperationType.Retrieve, () => entry);
            _authService.Setup(s => s.IsAuthenticated(req)).ReturnsAsync(true);
            _client.Setup(c => c.GetNzbStreamAsync(entry)).ReturnsAsync((null, null));

            var result = await _function.GrabNzbFromCartAsync(req, _cartTable.Object, _log.Object, "123");

            _cartTable.VerifyOperation(TableOperationType.Retrieve);
            Assert.IsType <NotFoundResult>(result);
        }
Beispiel #11
0
        public static CartEntry ToCartEntry(this WishResult wishResult, Func <string, string> grabUrlGenerator)
        {
            var entry = new CartEntry
            {
                Category    = wishResult.Category,
                Description = "",
                DetailsUrl  = wishResult.DetailsUrl,
                PublishDate = wishResult.PubDate,
                Title       = wishResult.Title,
                NzbUrl      = wishResult.NzbUrl
            };

            entry.GrabUrl = grabUrlGenerator(entry.RowKey);

            return(entry);
        }
        public void SetValues(CartEntry cartEntry)
        {
            LblProductName.Text  = cartEntry.Product.Name;
            LblProductPrice.Text = $"R$ {cartEntry.Subtotal:###,###,###,##0.00}";
            LblAmount.Text       = $"{cartEntry.Amount} UN";
            if (cartEntry.Discount > 0)
            {
                LblDiscount.Text  = $"{cartEntry.Discount:##0.0}%";
                VwDiscount.Hidden = false;
            }
            else
            {
                VwDiscount.Hidden = true;
            }

            ImageService.Instance.LoadUrl(cartEntry.Product.Photo)
            .Into(ImgProduct);
        }
Beispiel #13
0
        public async Task GrabNzbFromCartAsync_Respects_The_QueryString()
        {
            var ms    = new MemoryStream();
            var req   = TestHelper.CreateHttpRequest("https://nzb.mtighe.dev/api/cart/nzb/123?del=1");
            var entry = new CartEntry {
                ETag = "*"
            };

            _cartTable.SetupOperation(TableOperationType.Retrieve, () => entry);
            _cartTable.SetupOperation(entry, TableOperationType.Delete);
            _authService.Setup(s => s.IsAuthenticated(req)).ReturnsAsync(true);
            _client.Setup(c => c.GetNzbStreamAsync(entry)).ReturnsAsync((ms, Enumerable.Empty <KeyValuePair <string, StringValues> >()));

            var result = await _function.GrabNzbFromCartAsync(req, _cartTable.Object, _log.Object, "123");

            _cartTable.VerifyOperation(TableOperationType.Retrieve);
            _cartTable.VerifyOperation(TableOperationType.Delete);
            ms.Dispose();
        }
Beispiel #14
0
        public static SyndicationItem ToSyndicationItem(this CartEntry entry, QueryString qs)
        {
            var builder = new UriBuilder(entry.GrabUrl);

            builder.Query = qs.Value;
            var grabUri = builder.Uri;

            var feedItem = new SyndicationItem(entry.Title, entry.Description, grabUri)
            {
                PublishDate = new DateTimeOffset(entry.PublishDate),
                Id          = entry.RowKey,
            };

            feedItem.AddPermalink(new Uri(entry.DetailsUrl));
            feedItem.ElementExtensions.Add(new XElement("category", entry.Category));
            feedItem.ElementExtensions.Add(new XElement("enclosure",
                                                        new XAttribute("url", grabUri),
                                                        new XAttribute("length", "0"),
                                                        new XAttribute("type", "application/x+nzb")));

            return(feedItem);
        }
Beispiel #15
0
 public void RemoveEntry(CartEntry entry)
 {
     entry.Item.QuantityInCarts -= entry.Quantity;
     entries.Remove(entry);
 }
 public RemoveFromCartCommand(CartEntry entry) => _entry = entry;