// // GET: /ShoppingCart/AddToCart/5 public async Task <IActionResult> AddToCart(int id) { // Retrieve the product from the database var addedProduct = _db.Products .Single(product => product.ProductId == id); // Start timer for save process telemetry var startTime = System.DateTime.Now; // Add it to the shopping cart var cart = ShoppingCart.GetCart(_db, HttpContext); cart.AddToCart(addedProduct); await _db.SaveChangesAsync(HttpContext.RequestAborted); // Trace add process var measurements = new Dictionary <string, double>() { { "ElapsedMilliseconds", System.DateTime.Now.Subtract(startTime).TotalMilliseconds } }; _telemetry.TrackEvent("Cart/Server/Add", null, measurements); // Go back to the main store page for more shopping return(RedirectToAction("Index")); }
public async Task <IActionResult> AddressAndPayment(Order order) { var formCollection = await HttpContext.Request.ReadFormAsync(); try { if (string.Equals(formCollection["PromoCode"].FirstOrDefault(), PromoCode, StringComparison.OrdinalIgnoreCase) == false) { return(View(order)); } else { order.Username = HttpContext.User.Identity.Name; order.OrderDate = DateTime.Now; //Add the Order _db.Orders.Add(order); await _db.SaveChangesAsync(HttpContext.RequestAborted); //Process the order var cart = ShoppingCart.GetCart(_db, HttpContext); cart.CreateOrder(order); // Save all changes await _db.SaveChangesAsync(HttpContext.RequestAborted); try { string connectionString = Configuration[ConfigurationPath.Combine("ConnectionStrings", "StorageConnectionString")]; QueueClient queueClient = new QueueClient(connectionString, "orders"); queueClient.CreateIfNotExists(); if (queueClient.Exists()) { var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(order.OrderId.ToString()); queueClient.SendMessage(System.Convert.ToBase64String(plainTextBytes)); } } catch (Exception ex) { return(View("Error")); } return(RedirectToAction("Complete", new { id = order.OrderId })); } } catch (Exception ex) { return(View("Error")); } }
public async Task <ActionResult> Create([Bind(Include = "RaincheckId,Name,ProductId,Quantity,SalePrice,StoreId")] RainCheck rainCheck) { if (ModelState.IsValid) { _db.RainChecks.Add(rainCheck); await _db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.StoreId = new SelectList(_db.Stores, "StoreId", "Name", rainCheck.StoreId); ViewBag.ProductId = new SelectList(_db.Products, "ProductId", "SkuNumber", rainCheck.ProductId); return(View(rainCheck)); }
public async Task <ActionResult> Create( [Bind(Include = "ProductId,SkuNumber,RecommendationId,CategoryId,Title,Price,SalePrice,ProductArtUrl,Created,Description,ProductDetails,Inventory,LeadTime")] Product product) { if (ModelState.IsValid) { _db.Products.Add(product); await _db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.CategoryId = new SelectList(_db.Categories, "CategoryId", "Name", product.CategoryId); return(View(product)); }
public async static Task UpdateProductProcessTaskAsync([QueueTrigger("product")] ProductMessage message) { var builder = new ConfigurationBuilder(); builder.Add(new JsonConfigurationSource("config.json")); var config = builder.Build(); var connectionString = config["Data:DefaultConnection:ConnectionString"]; using (var context = new PartsUnlimitedContext(connectionString)) { var dbProductList = await context.Products.ToListAsync(); foreach (var queueProduct in message.ProductList) { var dbProduct = dbProductList.SingleOrDefault(x => x.SkuNumber == queueProduct.SkuNumber); if (dbProduct != null) { dbProduct.Inventory = queueProduct.Inventory; dbProduct.LeadTime = queueProduct.LeadTime; } } await context.SaveChangesAsync(CancellationToken.None); } }
public async Task <int> AddAsync(Raincheck raincheck) { var addedRaincheck = _context.RainChecks.Add(raincheck); await _context.SaveChangesAsync(CancellationToken.None); return(addedRaincheck.Entity.RaincheckId); }
public async static Task UpdateProductProcessTaskAsync([QueueTrigger("product")] ProductMessage message) { using (var context = new PartsUnlimitedContext()) { var dbProductList = await context.Products.ToListAsync(); foreach (var queueProduct in message.ProductList) { var dbProduct = dbProductList.SingleOrDefault(x => x.SkuNumber == queueProduct.SkuNumber); if (dbProduct != null) { dbProduct.Inventory = queueProduct.Inventory; dbProduct.LeadTime = queueProduct.LeadTime; } } await context.SaveChangesAsync(CancellationToken.None); } }
public async static Task UpdateProductProcessTaskAsync([QueueTrigger("product")] ProductMessage message) { using (var context = new PartsUnlimitedContext()) { var dbProductList = await context.Products.ToListAsync(); foreach (var queueProduct in message.ProductList) { var dbProduct = dbProductList.SingleOrDefault(x => x.SkuNumber == queueProduct.SkuNumber); if (dbProduct != null) { dbProduct.Inventory = queueProduct.Inventory; dbProduct.LeadTime = queueProduct.LeadTime; } } await context.SaveChangesAsync(CancellationToken.None); } }
public async Task <IActionResult> Create(Product product) { if (ModelState.IsValid) { _db.Products.Add(product); await _db.SaveChangesAsync(HttpContext.RequestAborted); _cache.Remove("announcementProduct"); return(RedirectToAction("Index")); } ViewBag.Categories = new SelectList(_db.Categories, "CategoryId", "Name", product.CategoryId); return(View(product)); }
public async static Task UpdateProductProcessTaskAsync([QueueTrigger("product")] ProductMessage message) { var config = new Configuration().AddJsonFile("config.json"); var connectionString = config.Get("Data:DefaultConnection:ConnectionString"); using (var context = new PartsUnlimitedContext(connectionString)) { var dbProductList = await context.Products.ToListAsync(); foreach (var queueProduct in message.ProductList) { var dbProduct = dbProductList.SingleOrDefault(x => x.SkuNumber == queueProduct.SkuNumber); if (dbProduct != null) { dbProduct.Inventory = queueProduct.Inventory; dbProduct.LeadTime = queueProduct.LeadTime; } } await context.SaveChangesAsync(CancellationToken.None); } }