public IActionResult Index() { //logged in user var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); ShoppingCartVM = new ShoppingCartViewModel() { OrderHeader = new Models.OrderHeader(), // load product along with cart ListCart = _unitOfWork.ShoppingCart.GetAll(u => u.ApplicationUserId == claim.Value, includeProperties: "Product") }; ShoppingCartVM.OrderHeader.OrderTotal = 0; ShoppingCartVM.OrderHeader.ApplicationUser = _unitOfWork.ApplicationUser .GetFirstOrDefault(u => u.Id == claim.Value); //go through all items in cart foreach (var list in ShoppingCartVM.ListCart) { list.Price = list.Product.Price; ShoppingCartVM.OrderHeader.OrderTotal += (list.Price * list.Count); list.Product.Description = StaticDetails.ConvertToRawHtml(list.Product.Description); //get first 100 chars only if (list.Product.Description.Length > 100) { list.Product.Description = list.Product.Description.Substring(0, 99) + "..."; } } return(View(ShoppingCartVM)); }
public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto) { var user = await _userManager.FindByEmailAsync(userForRegisterDto.Email); if (user != null) { return(BadRequest(new { error = "User already exist" })); } try{ var userToCreate = _mapper.Map <User>(userForRegisterDto); userToCreate.AccountNumber = StaticDetails.GenerateAccountNo(); userToCreate.AccountBalance = StaticDetails.DefaultAmount; userToCreate.IsActive = true; userToCreate.DateCreated = DateTime.Now; userToCreate.UserName = userForRegisterDto.Email; var result = await _userManager.CreateAsync(userToCreate, userForRegisterDto.Password); // var userToReturn = _mapper.Map<UserForListDto>(userToCreate); if (result.Succeeded) { return(Ok("Congratulations!!! Your account creation was successful. Kindly remember to fund your account")); } return(BadRequest(result.Errors)); }catch (Exception) { return(StatusCode(500, "Error Occured please try again later,please try again later...")); } }
public async Task <IActionResult> Index() { DetailsCart = new OrderDetailsCart() { OrderHeader = new Models.OrderHeader() }; DetailsCart.OrderHeader.OrderTotal = 0; var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); var cart = db.ShoppingCart.Where(sc => sc.ApplicationUserId == claim.Value); if (cart != null) { DetailsCart.ListCart = cart.ToList(); } foreach (var shoppingCart in DetailsCart.ListCart) { shoppingCart.MenuItem = await db.MenuItem.FirstOrDefaultAsync(mi => mi.Id == shoppingCart.MenuItemId); DetailsCart.OrderHeader.OrderTotal = DetailsCart.OrderHeader.OrderTotal + (shoppingCart.MenuItem.Price * shoppingCart.Count); shoppingCart.MenuItem.Description = StaticDetails.ConvertToRawHtml(shoppingCart.MenuItem.Description); if (shoppingCart.MenuItem.Description.Length > 100) { shoppingCart.MenuItem.Description = shoppingCart.MenuItem.Description.Substring(0, 99) + "..."; } } DetailsCart.OrderHeader.OrderTotalOriginal = DetailsCart.OrderHeader.OrderTotal; return(View(DetailsCart)); }
/// <summary> /// Class file that reads the json file from disk. If the file isn't empty we return it's contents. /// Otherwise we return null. /// </summary> /// <returns></returns> public DaylightStatModel.Playerstats ReadIndividualPlayerFile(string id) { DaylightStatModel.Playerstats obj = new DaylightStatModel.Playerstats(); try { if (!File.Exists(StaticDetails.BuildFilePath(StaticDetails.DataDirectoryPath, $"{id}.json"))) { var SteamIDJson = File.Create(StaticDetails.BuildFilePath(StaticDetails.DataDirectoryPath, $"{id}.json")); SteamIDJson.Close(); return(null); } var file = File.ReadAllText(StaticDetails.BuildFilePath(StaticDetails.DataDirectoryPath, $"{id}.json")); if (file != "") { JsonConvert.PopulateObject(file, obj); return(obj); } else { return(null); } } catch (Exception msg) { Console.WriteLine(msg); throw; } }
public async Task <string> SCreateDBoxClient(DaylightStatModel.Playerstats PlayerData) { using (var dbox = new DropboxClient(StaticDetails.DropboxToken)) { using (var mem = new MemoryStream(File.ReadAllBytes(StaticDetails.BuildFilePath(StaticDetails.DataDirectoryPath, $"{PlayerData.SteamId}.json")))) { try { var UploadFileDbox = dbox.Files.UploadAsync($"/{PlayerData.SteamId}.json", WriteMode.Overwrite.Instance, body: mem); UploadFileDbox.Wait(); var DboxListSharedLinks = dbox.Sharing.ListSharedLinksAsync($"/{PlayerData.SteamId}.json"); DboxListSharedLinks.Wait(); //SharedLinkSettings Settings = new SharedLinkSettings(); //Settings.Expires.Value.Add foreach (var current in DboxListSharedLinks.Result.Links) { if (current.Name == $"{PlayerData.SteamId}.json") { return(current.Url); } } var DownloadLink = dbox.Sharing.CreateSharedLinkWithSettingsAsync($"/{PlayerData.SteamId}.json"); DownloadLink.Wait(); return(DownloadLink.Result.Url); } catch (Exception msg) { return("Failed to created link"); } } } }
public IActionResult Index() { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); if (claim != null) { ShoppingCartVM = new ShoppingCartVM() { OrderHeader = new Models.OrderHeader(), ListCart = _unitOfWork.ShoppingCart.GetAll(u => u.ApplicationUserId == claim.Value, includeProperties: "Product") }; ShoppingCartVM.OrderHeader.OrderTotal = 0; foreach (var list in ShoppingCartVM.ListCart) { list.Price = StaticDetails.GetPriceBasedOnQuantity(list.Count, list.Product.Price, list.Product.Price50, list.Product.Price100); ShoppingCartVM.OrderHeader.OrderTotal += (list.Price * list.Count); list.Product.Description = StaticDetails.ConvertToRawHtml(list.Product.Description); if (list.Product.Description.Length > 100) { list.Product.Description = list.Product.Description.Substring(0, 99) + "..."; } } return(View(ShoppingCartVM)); } else { return(RedirectToAction("Index", "Home")); } }
public IActionResult Index() { var claimsIdentity = (ClaimsIdentity)User.Identity; var claims = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); ShoppingCartVM = new ShoppingCartVM() { OrderHeader = new OrderHeader(), CartList = unitOfWork.ShoppingCart.GetAll(u => u.ApplicatinUserId == claims.Value, includeProperties: "Product") }; ShoppingCartVM.OrderHeader.OrderTotal = 0; ShoppingCartVM.OrderHeader.ApplicationUser = unitOfWork.ApplicationUser.GetFirstOrDefault(u => u.Id == claims.Value, includeProperties: "Organization"); foreach (var item in ShoppingCartVM.CartList) { item.Price = StaticDetails.CalculateBooksPrice(item.Count, item.Product.Price, item.Product.Price50, item.Product.Price100); ShoppingCartVM.OrderHeader.OrderTotal += (item.Price * item.Count); item.Product.ProductDescription = StaticDetails.ConvertToRawHtml(item.Product.ProductDescription); if (item.Product.ProductDescription.Length > 100) { item.Product.ProductDescription = item.Product.ProductDescription.Substring(0, 99) + "..."; } } return(View(ShoppingCartVM)); }
public IActionResult Index() { var claimsIdentity = (ClaimsIdentity)User.Identity; //To get user id and verify user var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); ShoppingCartVM = new ShoppingCartViewModel() { OrderHeader = new BookStoreModels.OrderHeader(), CartList = _unitOfWork.Cart.GetAll(u => u.AppUserId == claim.Value, includeProperties: "Book") }; ShoppingCartVM.OrderHeader.OrderTotal = 0; ShoppingCartVM.OrderHeader.ApplicationUser = _unitOfWork.ApplicationUser. GetFirstOrDefault(u => u.Id == claim.Value, includeProperties: "Company"); //to fill app user //To populate ListCart foreach (var list in ShoppingCartVM.CartList) { list.Price = list.Book.Price; ShoppingCartVM.OrderHeader.OrderTotal += (list.Price * list.Count); list.Book.Description = StaticDetails.ConvertToRawHtml(list.Book.Description); if (list.Book.Description.Length > 100) { list.Book.Description = list.Book.Description.Substring(0, 99) + "..."; } } return(View()); }
public IActionResult Index() { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); SCVM = new ShoppingCartViewModel() { OrderHeader = new OrderHeader(), Carts = _unitOfWork.ShoppingCart.GetAll( u => u.ApplicationUserId == claim.Value, includeProperties: "Product") }; SCVM.OrderHeader.OrderTotal = 0; SCVM.OrderHeader.ApplicationUser = _unitOfWork.ApplicationUser. GetFirstOrDefault(u => u.Id == claim.Value, includeProperties: "Company"); foreach (var cart in SCVM.Carts) { cart.Price = StaticDetails.GetPrice( cart.Count, cart.Product.Price, cart.Product.Price50, cart.Product.Price100); SCVM.OrderHeader.OrderTotal += (cart.Price * cart.Count); } return(View(SCVM)); }
public IActionResult Index() { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); ShoppingCartViewModel = new ShoppingCartViewModel() { OrderHeader = new OrderHeader(), ListCart = _unitOfWork.ShoppingCart.GetAll(u => u.ApplicationUserId == claim.Value, includeProperties: "Product") }; ShoppingCartViewModel.OrderHeader.OrderTotal = 0; ShoppingCartViewModel.OrderHeader.ApplicationUser = _unitOfWork.ApplicationUser .GetFirstOrDefault(u => u.Id == claim.Value, includeProperties: "Company"); foreach (var list in ShoppingCartViewModel.ListCart) { list.Price = StaticDetails.GetPriceBasedOnQuantity(list.Count, list.Product.Price, list.Product.Price50, list.Product.Price100); ShoppingCartViewModel.OrderHeader.OrderTotal += (list.Price * list.Count); list.Product.Descreption = StaticDetails.ConvertToRawHtml(list.Product.Descreption); if (list.Product.Descreption.Length > 100) { list.Product.Descreption = list.Product.Descreption.Substring(0, 99) + "..."; } } return(View(ShoppingCartViewModel)); }
private async Task MainAsync() { GetCheckDirectory.CheckDirectory(); StaticDetails.PopulateKeys(); Client = new DiscordSocketClient(new DiscordSocketConfig { LogLevel = LogSeverity.Debug }); Commands = new CommandService(new CommandServiceConfig { CaseSensitiveCommands = true, DefaultRunMode = RunMode.Async, LogLevel = LogSeverity.Debug }); Client.MessageReceived += Client_MessageRecieved; await Commands.AddModulesAsync(Assembly.GetEntryAssembly(), null); Client.Ready += Client_Ready; Client.Log += Log; string Token = StaticDetails.DBDBotKey; await Client.LoginAsync(TokenType.Bot, Token); await Client.StartAsync(); await Task.Delay(-1); }
public IActionResult Summary() { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); ShoppingCartViewModel = new ShoppingCartViewModel() { OrderHeader = new OrderHeader(), ListCart = _unitOfWork.ShoppingCart.GetAll(c => c.ApplicationUserId == claim.Value, includeProperties: "Product") }; ShoppingCartViewModel.OrderHeader.ApplicationUser = _unitOfWork.ApplicationUser.GetFirstOrDefault(c => c.Id == claim.Value, includeProperties: "Company"); foreach (var list in ShoppingCartViewModel.ListCart) { list.Price = StaticDetails.GetPriceBasedOnQuantity(list.Count, list.Product.Price, list.Product.Price50, list.Product.Price100); ShoppingCartViewModel.OrderHeader.OrderTotal += (list.Price * list.Count); } ShoppingCartViewModel.OrderHeader.Name = ShoppingCartViewModel.OrderHeader.ApplicationUser.Name; ShoppingCartViewModel.OrderHeader.PhoneNumber = ShoppingCartViewModel.OrderHeader.ApplicationUser.PhoneNumber; ShoppingCartViewModel.OrderHeader.StreetAddress = ShoppingCartViewModel.OrderHeader.ApplicationUser.StreetAddress; ShoppingCartViewModel.OrderHeader.City = ShoppingCartViewModel.OrderHeader.ApplicationUser.City; ShoppingCartViewModel.OrderHeader.State = ShoppingCartViewModel.OrderHeader.ApplicationUser.State; ShoppingCartViewModel.OrderHeader.PostalCode = ShoppingCartViewModel.OrderHeader.ApplicationUser.PostalCode; return(View(ShoppingCartViewModel)); }
public IActionResult Summary() { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); SCVM = new ShoppingCartViewModel { OrderHeader = new OrderHeader(), Carts = _unitOfWork.ShoppingCart.GetAll( c => c.ApplicationUserId == claim.Value, includeProperties: "Product") }; SCVM.OrderHeader.ApplicationUser = _unitOfWork.ApplicationUser. GetFirstOrDefault(c => c.Id == claim.Value, includeProperties: "Company"); foreach (var cart in SCVM.Carts) { cart.Price = StaticDetails.GetPrice( cart.Count, cart.Product.Price, cart.Product.Price50, cart.Product.Price100); SCVM.OrderHeader.OrderTotal += (cart.Price * cart.Count); } SCVM.OrderHeader.Name = SCVM.OrderHeader.ApplicationUser.Name; SCVM.OrderHeader.PhoneNumber = SCVM.OrderHeader.ApplicationUser.PhoneNumber; SCVM.OrderHeader.StreetAddress = SCVM.OrderHeader.ApplicationUser.StreetAddress; SCVM.OrderHeader.City = SCVM.OrderHeader.ApplicationUser.City; SCVM.OrderHeader.State = SCVM.OrderHeader.ApplicationUser.State; SCVM.OrderHeader.PostalCode = SCVM.OrderHeader.ApplicationUser.PostalCode; return(View(SCVM)); }
/// <summary> /// Class file designed to save our list of player's stats, steam ID and Game to a JSON file. /// </summary> /// <param name="newEntryObj"></param> public void WriteToFile(DaylightStatModel.Playerstats newEntryObj) { using (StreamWriter file = File.CreateText(StaticDetails.BuildFilePath(StaticDetails.DataDirectoryPath, $"{newEntryObj.SteamId}.json"))) { JsonSerializer serializer = new JsonSerializer(); serializer.Formatting = Formatting.Indented; serializer.Serialize(file, newEntryObj); } }
public IActionResult Plus(int cartId) { var cart = _unitOfWork.ShoppingCart.GetFirstOrDefault(c => c.Id == cartId, includeProperties: "Product"); cart.Count += 1; cart.Price = StaticDetails.GetPriceBasedOnQuantity(cart.Count, cart.Product.Price, cart.Product.Price50, cart.Product.Price100); _unitOfWork.Save(); return(RedirectToAction(nameof(Index))); }
public IActionResult Plus(int cartId) { var cart = unitOfWork.ShoppingCart.GetFirstOrDefault(u => u.ShoppingCartId == cartId, includeProperties: "Product"); cart.Count += 1; cart.Price = StaticDetails.CalculateBooksPrice(cart.Count, cart.Product.Price, cart.Product.Price50, cart.Product.Price100); unitOfWork.Save(); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Index() { CartDetails = new OrderDetailsCart() { OrderHeader = new Models.OrderHeader() }; CartDetails.OrderHeader.OrderTotal = 0; var ClaimIdenttity = (ClaimsIdentity)User.Identity; var Claim = ClaimIdenttity.FindFirst(ClaimTypes.NameIdentifier); var cart = await _db.ShoppingCart.Where(c => c.ApplicationUserId == Claim.Value).ToListAsync(); if (cart != null) { CartDetails.ListCart = cart; } foreach (var item in CartDetails.ListCart) { //MenuItem Details from DB item.MenuItem = await _db.MenuItem.Where(x => x.Id == item.MenuItemId).FirstOrDefaultAsync(); //Calculating OrderTotal CartDetails.OrderHeader.OrderTotal += (item.MenuItem.Price * item.Count); item.MenuItem.Description = StaticDetails.ConvertToRawHtml(item.MenuItem.Description); //Only shows 100 character Descriptiom if (item.MenuItem.Description.Count() > 100) { item.MenuItem.Description = item.MenuItem.Description.Substring(0, 99) + "..."; } } //Storing Original Order Total Before Applying coupon CartDetails.OrderHeader.OrderTotalOriginal = CartDetails.OrderHeader.OrderTotal; if (HttpContext.Session.GetString(StaticDetails.CouponCodeSession) != null) { CartDetails.OrderHeader.CouponCode = HttpContext.Session.GetString(StaticDetails.CouponCodeSession); var coupon = await _db.Coupon.Where(c => c.Name.ToUpper() == CartDetails.OrderHeader.CouponCode.ToUpper()).FirstOrDefaultAsync(); CartDetails.OrderHeader.OrderTotal = StaticDetails.DiscountedPrice(coupon, CartDetails.OrderHeader.OrderTotalOriginal); } return(View(CartDetails)); }
public async Task <IActionResult> OrderSummery() { CartDetails = new OrderDetailsCart() { OrderHeader = new Models.OrderHeader() }; CartDetails.OrderHeader.OrderTotal = 0; var ClaimIdenttity = (ClaimsIdentity)User.Identity; var Claim = ClaimIdenttity.FindFirst(ClaimTypes.NameIdentifier); ApplicationUser applicationUser = await _db.ApplicationUser.Where(u => u.Id == Claim.Value).FirstOrDefaultAsync(); var cart = await _db.ShoppingCart.Where(c => c.ApplicationUserId == Claim.Value).ToListAsync(); if (cart != null) { CartDetails.ListCart = cart; } foreach (var item in CartDetails.ListCart) { //MenuItem Details from DB item.MenuItem = await _db.MenuItem.Where(x => x.Id == item.MenuItemId).FirstOrDefaultAsync(); //Calculating OrderTotal CartDetails.OrderHeader.OrderTotal += (item.MenuItem.Price * item.Count); } //Storing Original Order Total Before Applying coupon CartDetails.OrderHeader.OrderTotalOriginal = CartDetails.OrderHeader.OrderTotal; CartDetails.OrderHeader.PickUpName = applicationUser.Name; CartDetails.OrderHeader.PhoneNumber = applicationUser.PhoneNumber; CartDetails.OrderHeader.PickUpTime = DateTime.Now; //retrive coupon form session if (HttpContext.Session.GetString(StaticDetails.CouponCodeSession) != null) { CartDetails.OrderHeader.CouponCode = HttpContext.Session.GetString(StaticDetails.CouponCodeSession); var coupon = await _db.Coupon.Where(c => c.Name.ToUpper() == CartDetails.OrderHeader.CouponCode.ToUpper()).FirstOrDefaultAsync(); CartDetails.OrderHeader.OrderTotal = StaticDetails.DiscountedPrice(coupon, CartDetails.OrderHeader.OrderTotalOriginal); } return(View(CartDetails)); }
public JsonResult GetStaticText(int IdStaic, int IdLang, int IdStaticText) { var model = new StaticDetails(); var tblStatic = db.tblStaticResources .Include(t => t.tblStaticTexts) .Include(t => t.tblLanguages) .Where(t => t.IdStatic == IdStaic) .Where(s => s.IdLanguage == IdLang) .Where(s => s.IdStaticText == IdStaticText) .Select(s => new { s.tblStaticTexts.StaticText, s.Description }).ToList(); model.Description = tblStatic[0].Description; model.StaticText = tblStatic[0].StaticText; return(Json(model)); }
public IActionResult Minus(int cartId) { var cart = unitOfWork.ShoppingCart.GetFirstOrDefault(u => u.ShoppingCartId == cartId, includeProperties: "Product"); var count = unitOfWork.ShoppingCart.GetAll(u => u.ApplicatinUserId == cart.ApplicatinUserId).ToList().Count(); if (cart.Count == 1) { unitOfWork.ShoppingCart.RemoveEntity(cart); HttpContext.Session.SetObject(StaticDetails.SessionShoppingCart, count - 1); } else { cart.Count -= 1; cart.Price = StaticDetails.CalculateBooksPrice(cart.Count, cart.Product.Price, cart.Product.Price50, cart.Product.Price100); } unitOfWork.Save(); return(RedirectToAction(nameof(Index))); }
public IActionResult Minus(int cartId) { var cart = _unitOfWork.ShoppingCart.GetFirstOrDefault (c => c.Id == cartId, includeProperties: "Product"); if (cart.Count == 1) { var cnt = _unitOfWork.ShoppingCart.GetAll(u => u.ApplicationUserId == cart.ApplicationUserId).ToList().Count; _unitOfWork.ShoppingCart.Remove(cart); _unitOfWork.Save(); HttpContext.Session.SetInt32(StaticDetails.ShoppingCartSession, cnt - 1); } else { cart.Count -= 1; cart.Price = StaticDetails.GetPriceBasedOnQuantity(cart.Count, cart.Product.Price, cart.Product.Price50, cart.Product.Price100); _unitOfWork.Save(); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> OrderSummeryPost(string stripeToken) { var ClaimIdenttity = (ClaimsIdentity)User.Identity; var Claim = ClaimIdenttity.FindFirst(ClaimTypes.NameIdentifier); CartDetails.ListCart = await _db.ShoppingCart.Where(c => c.ApplicationUserId == Claim.Value).ToListAsync(); CartDetails.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusPending; CartDetails.OrderHeader.OrderDate = DateTime.Now; CartDetails.OrderHeader.UserId = Claim.Value; CartDetails.OrderHeader.Status = StaticDetails.PaymentStatusPending; CartDetails.OrderHeader.PickUpDate = Convert.ToDateTime(CartDetails.OrderHeader.PickUpDate.ToShortDateString() + " " + CartDetails.OrderHeader.PickUpTime.ToShortTimeString()); await _db.OrderHeader.AddAsync(CartDetails.OrderHeader); await _db.SaveChangesAsync(); //OrderDetails List List <OrderDetails> OrderDetailsList = new List <OrderDetails>(); ApplicationUser applicationUser = await _db.ApplicationUser.Where(u => u.Id == Claim.Value).FirstOrDefaultAsync(); CartDetails.OrderHeader.OrderTotalOriginal = 0; foreach (var item in CartDetails.ListCart) { //MenuItem Details from DB item.MenuItem = await _db.MenuItem.Where(x => x.Id == item.MenuItemId).FirstOrDefaultAsync(); //Calculating OrderTotal CartDetails.OrderHeader.OrderTotal += (item.MenuItem.Price * item.Count); OrderDetails orderDetails = new OrderDetails() { MenuItemId = item.MenuItem.Id, OrderId = CartDetails.OrderHeader.Id, Description = item.MenuItem.Description, Name = item.MenuItem.Name, Price = item.MenuItem.Price, Count = item.Count }; CartDetails.OrderHeader.OrderTotalOriginal += (item.MenuItem.Price * item.Count); _db.OrderDetails.Add(orderDetails); } //Calculate OrderTotal //retrive coupon form session if (HttpContext.Session.GetString(StaticDetails.CouponCodeSession) != null) { CartDetails.OrderHeader.CouponCode = HttpContext.Session.GetString(StaticDetails.CouponCodeSession); var coupon = await _db.Coupon.Where(c => c.Name.ToUpper() == CartDetails.OrderHeader.CouponCode.ToUpper()).FirstOrDefaultAsync(); CartDetails.OrderHeader.OrderTotal = StaticDetails.DiscountedPrice(coupon, CartDetails.OrderHeader.OrderTotalOriginal); } else { CartDetails.OrderHeader.OrderTotal = CartDetails.OrderHeader.OrderTotalOriginal; } //Calculate Discount CartDetails.OrderHeader.CouponCodeDiscount = CartDetails.OrderHeader.OrderTotalOriginal - CartDetails.OrderHeader.OrderTotal; await _db.SaveChangesAsync(); _db.ShoppingCart.RemoveRange(CartDetails.ListCart); HttpContext.Session.SetInt32(StaticDetails.ShoppingCartSession, 0); //var customerOptions = new CustomerCreateOptions //{ // Name = "Jenny Rosen", // Address = new AddressOptions // { // Line1 = "510 Townsend St", // PostalCode = "98140", // City = "San Francisco", // State = "CA", // Country = "US", // }, //}; //var customerService = new CustomerService(); //var customer = customerService.Create(customerOptions); try { var options = new ChargeCreateOptions { Amount = Convert.ToInt32(CartDetails.OrderHeader.OrderTotal * 100), Currency = "usd", Description = "Order ID : " + CartDetails.OrderHeader.Id, Source = stripeToken, }; var service = new ChargeService(); Charge charge = service.Create(options); if (charge.BalanceTransactionId == null) { CartDetails.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusRejected; } else { CartDetails.OrderHeader.TransactionId = charge.BalanceTransactionId; } if (charge.Status.ToLower() == "succeeded") { //send email for successfull order var email = _db.Users.Where(u => u.Id == Claim.Value).FirstOrDefault().Email; var subject = "Spice-Order Created,Order ID:" + CartDetails.OrderHeader.Id; var message = "Order Created successfully."; await _emailSender.SendEmailAsync(email, subject, message); CartDetails.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusApproved; CartDetails.OrderHeader.Status = StaticDetails.StatusSubmitted; } else { CartDetails.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusRejected; } await _db.SaveChangesAsync(); } catch (Exception e) { CartDetails.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusRejected; CartDetails.OrderHeader.Status = StaticDetails.PaymentStatusPending; await _db.SaveChangesAsync(); } //return RedirectToAction("Index", "Home"); return(RedirectToAction("ConfirmOrder", "Order", new { id = CartDetails.OrderHeader.Id })); }
public IActionResult SummaryPost(string stripeToken) { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); ShoppingCartViewModel.OrderHeader.ApplicationUser = _unitOfWork.ApplicationUser.GetFirstOrDefault(c => c.Id == claim.Value, includeProperties: "Company"); ShoppingCartViewModel.ListCart = _unitOfWork.ShoppingCart .GetAll(c => c.ApplicationUserId == claim.Value, includeProperties: "Product"); ShoppingCartViewModel.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusPending; ShoppingCartViewModel.OrderHeader.OrderStatus = StaticDetails.PaymentStatusPending; ShoppingCartViewModel.OrderHeader.ApplicationUserId = claim.Value; ShoppingCartViewModel.OrderHeader.OrderDate = DateTime.Now; _unitOfWork.OrderHeader.Add(ShoppingCartViewModel.OrderHeader); _unitOfWork.Save(); List <OrderDetails> orderDetailsList = new List <OrderDetails>(); foreach (var item in ShoppingCartViewModel.ListCart) { item.Price = StaticDetails.GetPriceBasedOnQuantity(item.Count, item.Product.Price, item.Product.Price50, item.Product.Price100); OrderDetails orderDetails = new OrderDetails() { ProductId = item.ProductId, OrderHeaderId = ShoppingCartViewModel.OrderHeader.Id, Price = item.Price, Count = item.Count }; ShoppingCartViewModel.OrderHeader.OrderTotal += orderDetails.Count * orderDetails.Price; _unitOfWork.OrderDetails.Add(orderDetails); } _unitOfWork.ShoppingCart.RemoveRange(ShoppingCartViewModel.ListCart); _unitOfWork.Save(); HttpContext.Session.SetInt32(StaticDetails.ssShoppingCart, 0); if (stripeToken == null) { //order will be created for delayed payment for authroized company ShoppingCartViewModel.OrderHeader.PaymentDueDate = DateTime.Now.AddDays(30); ShoppingCartViewModel.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusDelayedPayment; ShoppingCartViewModel.OrderHeader.OrderStatus = StaticDetails.PaymentStatusApproved; } else { //process the payment var options = new ChargeCreateOptions { Amount = Convert.ToInt32(ShoppingCartViewModel.OrderHeader.OrderTotal * 100), Currency = "usd", Description = "Order ID : " + ShoppingCartViewModel.OrderHeader.Id, Source = stripeToken }; var service = new ChargeService(); Charge charge = service.Create(options); if (charge.BalanceTransactionId == null) { ShoppingCartViewModel.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusRejected; } else { ShoppingCartViewModel.OrderHeader.TransactionId = charge.BalanceTransactionId; } if (charge.Status.ToLower() == "succeeded") { ShoppingCartViewModel.OrderHeader.PaymentStatus = StaticDetails.PaymentStatusApproved; ShoppingCartViewModel.OrderHeader.OrderStatus = StaticDetails.PaymentStatusApproved; ShoppingCartViewModel.OrderHeader.PaymentDate = DateTime.Now; } } _unitOfWork.Save(); return(RedirectToAction("OrderConfirmation", "Cart", new { id = ShoppingCartViewModel.OrderHeader.Id })); }