//INDEX - GET public async Task <IActionResult> Index() { detailCart = new OrderDetailsCart() { OrderHeader = new Models.OrderHeader() }; detailCart.OrderHeader.OrderTotal = 0.0; var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); ApplicationUser applicationUser = await _db.ApplicationUser.Where(c => c.Id == claim.Value).FirstOrDefaultAsync(); if (claim != null) { var cnt = _db.ShoppingCart.Where(u => u.ApplicationUserId == claim.Value).ToList().Count; HttpContext.Session.SetInt32("ssCartCount", cnt); } var cart = _db.ShoppingCart.Where(c => c.ApplicationUserId == claim.Value); if (cart != null) { detailCart.listCart = cart.ToList(); } double weigth = 0.0; double volume = 0.0; foreach (var list in detailCart.listCart) { list.StoreItem = await _db.StoreItem.FirstOrDefaultAsync(m => m.Id == list.StoreItemId); detailCart.OrderHeader.OrderTotal = detailCart.OrderHeader.OrderTotal + (list.StoreItem.Price * list.Count); weigth += (list.StoreItem.Weight * list.Count); volume += (list.StoreItem.Volume * list.Count); } detailCart.OrderHeader.OrderTotalOriginal = detailCart.OrderHeader.OrderTotal; if (HttpContext.Session.GetString(SD.ssUserName) != null) { detailCart.OrderHeader.Name = HttpContext.Session.GetString(SD.ssUserName); } else { detailCart.OrderHeader.Name = applicationUser.Name; } if (HttpContext.Session.GetString(SD.ssUserAddress) != null) { detailCart.OrderHeader.Address = HttpContext.Session.GetString(SD.ssUserAddress); } else { detailCart.OrderHeader.Address = applicationUser.StreetAddress; } if (HttpContext.Session.GetString(SD.ssUserCity) != null) { detailCart.OrderHeader.City = HttpContext.Session.GetString(SD.ssUserCity); } else { detailCart.OrderHeader.City = applicationUser.City; } if (HttpContext.Session.GetString(SD.ssUserState) != null) { detailCart.OrderHeader.State = HttpContext.Session.GetString(SD.ssUserState); } else { detailCart.OrderHeader.State = applicationUser.State; } if (HttpContext.Session.GetString(SD.ssPostalCode) != null) { detailCart.OrderHeader.PostalCode = HttpContext.Session.GetString(SD.ssPostalCode); string[] precoPrazo = await SD.GetPriceAndTimePostalServiceAsync(detailCart.OrderHeader.PostalCode, weigth, volume); detailCart.OrderHeader.PostalPrice = Convert.ToDouble(precoPrazo[0]); detailCart.OrderHeader.PostalTime = Convert.ToDouble(precoPrazo[1]); detailCart.OrderHeader.OrderTotal += detailCart.OrderHeader.PostalPrice; HttpContext.Session.SetInt32("ssPostalPrice", Convert.ToInt32(detailCart.OrderHeader.PostalPrice * 100)); } else { detailCart.OrderHeader.PostalCode = applicationUser.PostalCode; string[] precoPrazo = await SD.GetPriceAndTimePostalServiceAsync(detailCart.OrderHeader.PostalCode, weigth, volume); detailCart.OrderHeader.PostalPrice = Convert.ToDouble(precoPrazo[0]); detailCart.OrderHeader.PostalTime = Convert.ToDouble(precoPrazo[1]); detailCart.OrderHeader.OrderTotal += detailCart.OrderHeader.PostalPrice; HttpContext.Session.SetInt32("ssPostalPrice", Convert.ToInt32(detailCart.OrderHeader.PostalPrice * 100)); } return(View(detailCart)); }