public async Task <IActionResult> SummaryPostAsync(ProductUserViewModel productUserViewModel) { string pathToTemplate = _webHostsEnvironment.WebRootPath + Path.DirectorySeparatorChar.ToString() + "templates" + Path.DirectorySeparatorChar.ToString() + "inquiry.html"; var subject = "New Inquiry"; string htmlBody = ""; // Read template file to htmlBody using (var sr = System.IO.File.OpenText(pathToTemplate)) { htmlBody = sr.ReadToEnd(); } StringBuilder productListSB = new StringBuilder(); foreach (var product in productUserViewModel.ProductList) { productListSB.Append($" - Name: {product.Name} <span style='font-size: 14px;'> (ID: {product.Id})</span><br/>"); } string messageBody = string.Format(htmlBody, productUserViewModel.ApplicationUser.FullName, productUserViewModel.ApplicationUser.Email, productUserViewModel.ApplicationUser.PhoneNumber, productListSB.ToString()); // Send email to user await _emailSender.SendEmailAsync(WC.AdminEmail, subject, messageBody); return(RedirectToAction(nameof(InquiryConfirmation))); }
public IActionResult Summary() { //Get User Id //var claimIdentity = User.Identity as ClaimsIdentity; //var claim = claimIdentity.FindFirst(ClaimTypes.NameIdentifier).Value; //or var UserId = User.FindFirstValue(ClaimTypes.NameIdentifier); List <ShoppingCart> ShoppingCartList = new List <ShoppingCart>(); var session = HttpContext.Session.Get <IEnumerable <ShoppingCart> >(WC.SessinCart); if (session is not null && session.Count() > 0) { ShoppingCartList = session.ToList(); } List <int?> porductInCart = ShoppingCartList.Select(q => q.ProductId).ToList(); IEnumerable <Product> productList = db.Products.Where(q => porductInCart.Contains(q.ProId)); ProductUserVM = new ProductUserViewModel() { AppUser = db.AppUsers.FirstOrDefault(q => q.Id == UserId), productList = productList.ToList() }; return(View(ProductUserVM)); }
public ActionResult Login() { var user = new ProductUserViewModel() { Id = 1, ResourceOwner = "xrainchen" }; TicketStorageFactory.InstanceTicketStorage <ProductUserViewModel>().SetTicket(user); return(RedirectToAction("Index", "Home")); }
public IActionResult Summary() { // Find user info from Entity Framework var identity = (ClaimsIdentity)User.Identity; var claim = identity.FindFirst(ClaimTypes.NameIdentifier); // var userId = User.FindFirstValue(ClaimTypes.Name); var products = GetProductCart(); ProductUserVM = new ProductUserViewModel { ApplicationUser = _db.ApplicationUsers.FirstOrDefault(u => u.Id == claim.Value), ProductList = products.ToList() }; return(View(ProductUserVM)); }
public IActionResult Sum() { var claimsId = (ClaimsIdentity)User.Identity; var claim = claimsId.FindFirst(ClaimTypes.NameIdentifier); List <Cart> cartList = new List <Cart>(); if (HttpContext.Session.Get <IEnumerable <Cart> >(Constants.SessCart) != null && HttpContext.Session.Get <IEnumerable <Cart> >(Constants.SessCart).Count() > 0) { cartList = HttpContext.Session.Get <List <Cart> >(Constants.SessCart); } List <int> productsInCart = cartList.Select(i => i.ProdId).ToList(); IEnumerable <Prod> prodList = _db.Product.Where(u => productsInCart.Contains(u.Id)); ProductUserViewModel = new ProductUserViewModel() { AppUser = _db.AppUser.FirstOrDefault(u => u.Id == claim.Value), ProdList = prodList.ToList() }; return(View(ProductUserViewModel)); }
public IActionResult SumPost(ProductUserViewModel productUserViewModel) { return(RedirectToAction(nameof(InquiryConf))); }
public async Task <IActionResult> SummaryPost(IFormCollection collection, ProductUserViewModel ProductUserVM) { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); if (User.IsInRole(MC.AdminRole)) { //create order. OrderHeader orderheader = new OrderHeader() { CreatedByUserId = claim.Value, FinalOrderTotal = ProductUserViewModel.ProductList.Sum(x => x.TempSqFT * x.Price), City = ProductUserViewModel.ApplicationUser.City, StreetAddress = ProductUserViewModel.ApplicationUser.StreetAddress, State = ProductUserViewModel.ApplicationUser.State, PostalCode = ProductUserViewModel.ApplicationUser.Postal, FullName = ProductUserViewModel.ApplicationUser.FullName, Email = ProductUserViewModel.ApplicationUser.Email, PhoneNumber = ProductUserViewModel.ApplicationUser.PhoneNumber, OrderDate = DateTime.Now, OrderStatus = MC.StatusPending }; _order_header_repo.Add(orderheader); _order_header_repo.Save(); foreach (var prod in ProductUserVM.ProductList) { OrderDetail orderDetail = new OrderDetail() { OrderHeaderId = orderheader.Id, PricePerSqFt = prod.Price, Sqft = prod.TempSqFT, ProductId = prod.Id }; _order_details_repo.Add(orderDetail); } _order_details_repo.Save(); string nonceFromTheClient = collection["payment_method_nonce"]; var request = new TransactionRequest { Amount = Convert.ToDecimal(orderheader.FinalOrderTotal), PaymentMethodNonce = nonceFromTheClient, OrderId = orderheader.Id.ToString(), Options = new TransactionOptionsRequest { SubmitForSettlement = true } }; var gateway = _brain.GetGateWay(); Result <Transaction> result = gateway.Transaction.Sale(request); if (result.Target.ProcessorResponseText == "Approved") { orderheader.TransactionId = result.Target.Id; orderheader.OrderStatus = MC.StatusApproved; } else { orderheader.OrderStatus = MC.StatusCancelled; } _order_header_repo.Save(); return(RedirectToAction(nameof(InquiryConfirmation), new { id = orderheader.Id })); } else { //create inquiry. var PathToTemplate = _webHostEnvironment.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "Inquiry.html"; var subject = "New Inquiry"; string HtmlBody = ""; using (StreamReader sr = System.IO.File.OpenText(PathToTemplate)) { HtmlBody = sr.ReadToEnd(); } StringBuilder productListSB = new StringBuilder(); foreach (var prod in ProductUserViewModel.ProductList) { productListSB.Append($" - Name: {prod.Name} <span style='font-size:14px;'> (ID: {prod.Id})</span><br/>"); } string messageBdy = string.Format(HtmlBody, ProductUserVM.ApplicationUser.FullName, ProductUserVM.ApplicationUser.Email, ProductUserVM.ApplicationUser.PhoneNumber, productListSB.ToString()); await _emailSender.SendEmailAsync(MC.EmailAdmin, subject, messageBdy); InquiryHeader inquiryHeader = new InquiryHeader() { ApplicationUserId = claim.Value, FullName = ProductUserVM.ApplicationUser.FullName, Email = ProductUserVM.ApplicationUser.Email, PhhoneNumber = ProductUserVM.ApplicationUser.PhoneNumber, InquiryDate = DateTime.Now }; _headerRepo.Add(inquiryHeader); _headerRepo.Save(); foreach (var prod in ProductUserVM.ProductList) { InquiryDetails inquiryDetail = new InquiryDetails() { InquiryHeaderId = inquiryHeader.Id, ProductId = prod.Id }; _detailRepo.Add(inquiryDetail); } TempData[MC.Success] = "Inquiry Sent Successfully"; _detailRepo.Save(); return(RedirectToAction(nameof(InquiryConfirmation))); } }
public IActionResult Summary() { ApplicationUser applicationUser; if (User.IsInRole(MC.AdminRole)) { if (HttpContext.Session.Get <int>(MC.SesssionInquiryId) != 0) { //cart has been loaded with an inquiry. InquiryHeader inquiryHeader = _headerRepo.FirstOrDefault(u => u.Id == HttpContext.Session.Get <int>(MC.SesssionInquiryId)); applicationUser = new ApplicationUser() { Email = inquiryHeader.Email, FullName = inquiryHeader.FullName, PhoneNumber = inquiryHeader.PhhoneNumber }; } else { applicationUser = new ApplicationUser(); } var gateway = _brain.GetGateWay(); var clientToken = gateway.ClientToken.Generate(); ViewBag.ClientToken = clientToken; } else { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); applicationUser = _appRepo.FirstOrDefault(u => u.Id == claim.Value); } //var userId = User.FindFirstValue(ClaimTypes.Name); List <ShoppingCart> shoppingCartList = new List <ShoppingCart>(); if (HttpContext.Session.Get <IEnumerable <ShoppingCart> >(MC.SesssionCart) != null && HttpContext.Session.Get <IEnumerable <ShoppingCart> >(MC.SesssionCart).Count() > 0) { //session exists shoppingCartList = HttpContext.Session.Get <List <ShoppingCart> >(MC.SesssionCart); } List <int> prodInCart = shoppingCartList.Select(i => i.ProductId).ToList(); IEnumerable <Product> prodList = _prodRepo.GetAll(u => prodInCart.Contains(u.Id)); ProductUserViewModel = new ProductUserViewModel() { ApplicationUser = applicationUser, }; foreach (var cartObj in shoppingCartList) { Product prodTemp = _prodRepo.FirstOrDefault(u => u.Id == cartObj.ProductId); prodTemp.TempSqFT = cartObj.SqFt; ProductUserViewModel.ProductList.Add(prodTemp); } return(View(ProductUserViewModel)); }