// TODO - GenerateCreditCardPayment(). public object GenerateCreditCardPayment( Models.Customer loggedInCustomer, ShippingInformation shippingInfo, Models.Address customerAddress, List <CartItem> cartItems, CreditCard creditCart) { try { SetKeys(); decimal totalPrice = CalculateTotalPrice(cartItems, shippingInfo); Transaction transaction = new Transaction() { Amount = PriceConverter.ConvertDecimalPriceToPriceInCents(totalPrice), Billing = BillingFactory(loggedInCustomer, customerAddress), Card = CardFactory(creditCart), Customer = CustomerFactory(loggedInCustomer), Item = ItemArrayFactory(cartItems), Shipping = ShippingFactory(loggedInCustomer, shippingInfo, customerAddress) }; transaction.Save(); return(new { TransactionId = transaction.Id }); } catch (Exception e) { return(new { Error = e.Message }); } }
public IActionResult Index() { List <CartItem> cartItems = cartCookieManager.GetCookieData(); List <ShippingInformation> shippingInfos = shippingInfoCookieManager.GetCookieData(); if (cartItems.Count == 0 || shippingInfos.Count == 0) { return(RedirectToAction("Index", "Cart")); } ShippingInformation selectedShippingRate = shippingInfos.Find(s => s.IsSelected == true); if (selectedShippingRate.SelectedAddressId == 0) { return(RedirectToAction("Index", "Cart")); } foreach (var cartItem in cartItems) { cartItem.Product = productRepository.GetProduct(cartItem.Id); } ViewData["CartItems"] = cartItems; ViewData["ShippingInformation"] = selectedShippingRate; ViewData["SelectedAddress"] = addressRepository.GetAddress(selectedShippingRate.SelectedAddressId); return(View()); }
public IActionResult Index([FromForm] CreditCard creditCard) { if (ModelState.IsValid) { List <CartItem> cartItems = cartCookieManager.GetCookieData(); foreach (var cartItem in cartItems) { cartItem.Product = productRepository.GetProduct(cartItem.Id); } Customer loggedInCustomer = customerSession.GetLoggedInCustomer(); ShippingInformation selectedShippingRate = shippingInfoCookieManager.GetCookieData() .Find(s => s.IsSelected == true); Address selectedAddress = addressRepository.GetAddress(selectedShippingRate.SelectedAddressId); dynamic transactionResult = pagarMeManager.GenerateCreditCardPayment(loggedInCustomer, selectedShippingRate, selectedAddress, cartItems, creditCard); // return new ContentResult{ Content = $"OK! Transaction ID = {transactionResult.TransactionId}" }; return(new ContentResult { Content = "OK!" }); } return(Index()); }
/// <summary> /// <see cref="Microsoft.Samples.NLayerApp.DistributedServices.MainModule.IMainModuleService"/> /// </summary> /// <param name="shippingData"><see cref="Microsoft.Samples.NLayerApp.DistributedServices.MainModule.IMainModuleService"/></param> /// <returns><see cref="Microsoft.Samples.NLayerApp.DistributedServices.MainModule.IMainModuleService"/></returns> public List <Order> GetOrdersByShippingData(ShippingInformation shippingData) { //Resolve root dependencies and perform operation ISalesManagementService salesManagement = IoCFactory.Instance.CurrentContainer.Resolve <ISalesManagementService>(); return(salesManagement.FindOrdersByShippingData(shippingData.ShippingName, shippingData.ShippingAddress, shippingData.ShippingCity, shippingData.ShippingZip)); }
public void CreatePurchaseBulgaria_AndValidateNoVATTax() { IWebDriver driver = new FirefoxDriver(); ShoppingCartPage shoppingCartPage = new ShoppingCartPage(driver); BillingInformationPage billingInformationPage = new BillingInformationPage(driver); OnlineShoppingCartFacade onlineShoppingCart = new OnlineShoppingCartFacade(shoppingCartPage, billingInformationPage); BillingInformation billingInfo = new BillingInformation("Anton", "Angelov", "Kaspichan"); ShippingInformation shippingInfo = new ShippingInformation("Anton", "Angelov", "Kalofer"); onlineShoppingCart.PerformPurchase(billingInfo, shippingInfo); }
private decimal CalculateTotalPrice(List <CartItem> cartItems, ShippingInformation shippingInfo) { decimal totalPrice = 0; foreach (var cartItem in cartItems) { totalPrice += cartItem.Amount * cartItem.Product.UnitPrice; } totalPrice += (decimal)shippingInfo.Price; return(totalPrice); }
public void CreatePurchaseBulgaria_AndValidateNoVATTax() { IWebDriver driver = new FirefoxDriver(); var shoppingCartPage = new ShoppingCartPage(driver); var billingInformationPage = new BillingInformationPage(driver); var onlineShoppingCart = new OnlineShoppingCartFacade(billingInformationPage, shoppingCartPage); var billingInfo = new BillingInformation("Anton", "Angelov", "Kaspichan"); var shippingInfo = new ShippingInformation("Anton", "Angelov", "Kalofer"); onlineShoppingCart.PerformPurchase(billingInfo, shippingInfo); }
public void PerformPurchase(BillingInformation billingInfo, ShippingInformation shippingInfo) { ////shoppingCartPage.ChangeQuantity(1); shoppingCartPage.Checkout.Click(); shoppingCartPage.AssertCheckoutButtonIsEnabled(); shoppingCartPage.AssertCheckoutButtonIsEnabled(); billingInformationPage.Asserter.AssertCityLabel(); billingInformationPage.Asserter.AssertFirstNameLabel(); billingInformationPage.Asserter.AssertLastNameLabel(); billingInformationPage.FillBillingInformation(billingInfo.FirstName, billingInfo.LastName, billingInfo.City); billingInformationPage.FillShippingInformation(shippingInfo.FirstName, shippingInfo.LastName, shippingInfo.City); billingInformationPage.Map.ProceedToPayment.Click(); }
private PagarMe.Shipping ShippingFactory(Models.Customer customer, ShippingInformation shippingInfo, Models.Address address) { string deliveryDate = DateTime.Now .AddDays(shippingInfo.EstimatedTimeOfArrivalInDays) .ToString("yyyy-MM-dd"); return(new PagarMe.Shipping { Name = customer.Name, Fee = PriceConverter.ConvertDoublePriceToPriceInCents(shippingInfo.Price), DeliveryDate = deliveryDate, Expedited = false, Address = AddressFactory(address) }); }
public async Task <IActionResult> CalculateShippingRate(string destinationCep) { List <CartItem> cartItems = cartCookieManager.GetCookieData(); foreach (var cartItem in cartItems) { cartItem.Product = productRepository.GetProduct(cartItem.Id); } var packages = shippingPackageFactory.CreateShippingPackages(cartItems); ShippingInformation shippingInfoPAC = await shippingRateCalculator.CalculateShippingRateAndETA(shippingOriginCep, destinationCep, FreightTypes.PAC, packages); ShippingInformation shippingInfoSEDEX = await shippingRateCalculator.CalculateShippingRateAndETA(shippingOriginCep, destinationCep, FreightTypes.SEDEX, packages); if (shippingInfoPAC == null || shippingInfoSEDEX == null) { shippingInfoCookieManager.DeleteCookie(); return(BadRequest()); } var shippingInfosInCookie = shippingInfoCookieManager.GetCookieData(); bool theCookieAlreadyExists = shippingInfosInCookie.Count != 0; if (theCookieAlreadyExists) { _ = shippingInfosInCookie[0].IsSelected ? shippingInfoPAC.IsSelected = true : shippingInfoSEDEX.IsSelected = true; } else { shippingInfoPAC.IsSelected = true; } var shippingInfos = new List <ShippingInformation>() { shippingInfoPAC, shippingInfoSEDEX }; shippingInfoCookieManager.SetCookie(shippingInfos); return(Ok(shippingInfos)); }
public void PerformPurchase(BillingInformation billingInfo, ShippingInformation shippingInfo) { ////shoppingCartPage.ChangeQuantity(1); this.ShoppingCartPage.Checkout.Click(); this.ShoppingCartPage.AssertCheckoutButtonIsEnabled(); this.ShoppingCartPage.AssertCheckoutButtonIsEnabled(); this.BillingInformationPage.AssertCityLabel(); this.BillingInformationPage.AssertFirstNameLabel(); this.BillingInformationPage.AssertLastNameLabel(); this.BillingInformationPage.FillBillingInformation(billingInfo.FirstName, billingInfo.LastName, billingInfo.City); this.BillingInformationPage.FillShippingInformation(shippingInfo.FirstName, shippingInfo.LastName, shippingInfo.City); this.BillingInformationPage.ProceedToPayment.Click(); }
public bool SetShippingInformation(string paymentId, ShippingInformation data) { return(this.Update(paymentId, "shippingInformation", null, data, null)); }
public bool LaunchPurchase(DesiredShoe shoe) { ShippingInformation shipping = _shippingAndBillingService.GetShippingInformation(); BillingInformation billing = _shippingAndBillingService.GetBillingInformation(); IWebDriver driver = _webDriver; driver.Navigate().GoToUrl(shoe.URL); bool unreleased = false; while (!unreleased) { try { driver.Navigate().GoToUrl(shoe.URL); var notifyButton = driver.FindElement(By.CssSelector(".product-info .cta-btn")); if (notifyButton.Text.Contains("Notify", StringComparison.OrdinalIgnoreCase)) { unreleased = false; } //else //{ // driver.Quit(); //} } catch (Exception ex) { Console.WriteLine(ex.Message); unreleased = true; } //if (notifyButton.Text.Contains("Notify", StringComparison.OrdinalIgnoreCase)) //{ // unreleased = true; //} System.Threading.Thread.Sleep(shoe.RefreshInterval); Console.WriteLine("refreshed at " + DateTime.Now.ToString()); } // Select Size SeleniumSetMethods.Click(driver, "label", FindBy.Class); System.Threading.Thread.Sleep(250); //////////////////////////////// // 10.5 on Chrome??? // 11.5 on Firefox //SeleniumSetMethods.Click(driver, ".size:nth-child(12) > .size-grid-dropdown", FindBy.CssSelector); //SeleniumSetMethods.Click(driver, ".size:nth-child(17) > .size-grid-dropdown", FindBy.CssSelector); bool foundSize = false; for (int i = 1; i < 20; ++i) { if (SeleniumSetMethods.ClickAndVerifyText(driver, ".size:nth-child(" + i.ToString() + ") > .size-grid-dropdown", FindBy.CssSelector, shoe.TargetSize)) { foundSize = true; break; } //else //{ // //Console.WriteLine("attempted nth-child: " + i.ToString()); //} } if (!foundSize) { //Console.WriteLine("Unable to find correct shoe size."); return(false); } System.Threading.Thread.Sleep(500); //////////////////////////////// // Add to cart SeleniumSetMethods.Click(driver, ".ncss-btn-black", FindBy.CssSelector); System.Threading.Thread.Sleep(500); //////////////////////////////// // Checkout SeleniumSetMethods.Click(driver, ".ncss-btn-black:nth-child(2)", FindBy.CssSelector); System.Threading.Thread.Sleep(500); //////////////////////////////// // Continue as guest SeleniumSetMethods.Click(driver, "qa-guest-checkout", FindBy.Id); System.Threading.Thread.Sleep(500); //////////////////////////////// // Shipping Information SeleniumSetMethods.EnterText(driver, "firstName", shipping.FirstName, FindBy.Id); SeleniumSetMethods.EnterText(driver, "lastName", shipping.LastName, FindBy.Id); SeleniumSetMethods.EnterText(driver, "address1", shipping.Address1, FindBy.Id); // need to expand address2 section here SeleniumSetMethods.EnterText(driver, "city", shipping.City, FindBy.Id); SeleniumSetMethods.SelectDropDown(driver, "state", shipping.State, FindBy.Id); SeleniumSetMethods.EnterText(driver, "postalCode", shipping.ZipCode, FindBy.Id); SeleniumSetMethods.EnterText(driver, "email", shipping.Email, FindBy.Id); SeleniumSetMethods.EnterText(driver, "phoneNumber", shipping.PhoneNumber, FindBy.Id); // Save and Continue Button SeleniumSetMethods.Click(driver, ".js-next-step", FindBy.CssSelector); // Continue to Payment SeleniumSetMethods.Click(driver, ".js-next-step", FindBy.CssSelector); System.Threading.Thread.Sleep(1000); /////////////////////////////// driver.SwitchTo().Frame(4); // Billing Information string ccn = billing.CreditCardNumber; SeleniumSetMethods.EnterText(driver, "creditCardNumber", ccn.Substring(0, 4), FindBy.Id); SeleniumSetMethods.EnterText(driver, "creditCardNumber", ccn.Substring(4, 4), FindBy.Id); string creditCardNumber = ccn.Substring(8); foreach (var c in creditCardNumber.ToCharArray()) { SeleniumSetMethods.EnterText(driver, "creditCardNumber", c.ToString(), FindBy.Id); } SeleniumSetMethods.EnterText(driver, "expirationDate", billing.ExpirationDate, FindBy.Id); SeleniumSetMethods.EnterText(driver, "cvNumber", billing.CVV2, FindBy.Id); if (Constants.DEBUG_MODE) { driver.Quit(); return(false); //works } driver.SwitchTo().ParentFrame();//relative=parent // Purchase SeleniumSetMethods.Click(driver, ".d-lg-ib", FindBy.CssSelector); return(true); }
public CreateOrder(IEnumerable <OrderLine> lines, PaymentInformation payment, ShippingInformation shipping) { Lines = lines; Payment = payment; Shipping = shipping; }
public GiftClaimResponse ClaimRewardGift(string giftId) { // --- Buscar Regalo solicitado --- RewardGift rewardGift = Database.RewardGiftStore.Get(giftId); if (rewardGift == null) { throw new HttpNotFoundException( ControllerStrings.Warning701_GiftNotFound ); } // --- Verificar que el Regalo haya sido obtenido por el Usuario --- UserEarnedReward userEarnedReward = Database.UserEarnedRewardStore.GetFirst( filter: f => f.User.Guid == CurrentUser.Guid && f.Reward.RewardGift.Any(r => r.Guid == rewardGift.Guid) ); if (userEarnedReward == null) { throw new HttpNotFoundException( ControllerStrings.Warning701_GiftNotFound ); } // --- Verificar que el Regalo no haya sido Reclamado por el Usuario --- bool userClaimedGift = rewardGift.UserRewardGiftClaimed.Where(w => w.RedeemedByUser.Guid == CurrentUser.Guid && w.RewardGift.Guid == rewardGift.Guid ).FirstOrDefault() != null; if (userClaimedGift) { throw new HttpNotFoundException( ControllerStrings.Warning701_GiftNotFound ); } // --- Verificar que el Usuario tenga Información de Envío si el Regalo se envía --- if (rewardGift.IsShipped) { ShippingInformation shippingInformation = CurrentUser.ShippingInformation; if (shippingInformation == null) { throw new HttpConflictException( ControllerStrings.Warning205_ShippingInfoNotSet ); } } // --- Obtener un objeto de Reclamo --- UserRewardGiftClaimed giftClaim = Database.UserRewardGiftClaimedStore.GetFirst( filter: f => f.RedeemedByUser == null && f.RewardGift.Guid == rewardGift.Guid ); if (giftClaim == null) { throw new HttpNoContentException( ControllerStrings.Warning702_GiftOutOfStock ); } // --- Asociar al Usuario con el Reclamo (efectivamente reclamando el regalo del usuario) --- giftClaim.RedeemedByUser = CurrentUser; Database.UserRewardGiftClaimedStore.Update(giftClaim); Database.SaveChanges(); // Devolver estatus "204 No Content" si el Regalo lo envía KMS. if (rewardGift.IsShipped) { throw new HttpNoContentException("703" + ControllerStrings.Warning703_GiftShippingPending); } // --- Devolver detalles de canje --- return(new GiftClaimResponse() { ExpirationDate = giftClaim.ExpirationDate.HasValue ? giftClaim.ExpirationDate.Value : DateTime.MaxValue, RedeemCode = giftClaim.RedeemCode, RedeemPicture = GetDynamicResourceUri(giftClaim) }); }