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(); }
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)); }
public async Task <IActionResult> RemoveOne(CartEntry entry) { var cart = this.UserShoppingCart(); cart.decreaseAmountByOne(entry.SkuCode); this.SaveCart(cart); return(RedirectToAction("ViewCart"));// await ViewCart(); }
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 };
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); }
////////////////////////////////////////////////////////////// /// 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)); }
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); }
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); }
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(); }
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); }
public void RemoveEntry(CartEntry entry) { entry.Item.QuantityInCarts -= entry.Quantity; entries.Remove(entry); }
public RemoveFromCartCommand(CartEntry entry) => _entry = entry;