public ActionResult Index() { //if (User.Identity.IsAuthenticated == false) //This works, but it's verbose. Use an attribute! // return RedirectToAction("Login"); MyAccountModel model = new MyAccountModel(); model.EmailAddress = User.Identity.Name; string publicKey = ConfigurationManager.AppSettings["Braintree.PublicKey"]; string privateKey = ConfigurationManager.AppSettings["Braintree.PrivateKey"]; string environment = ConfigurationManager.AppSettings["Braintree.Environment"]; string merchantId = ConfigurationManager.AppSettings["Braintree.MerchantID"]; Braintree.BraintreeGateway braintree = new Braintree.BraintreeGateway(environment, merchantId, publicKey, privateKey); int userId = -1; using (MemberEntities1 e = new MemberEntities1()) { userId = e.CustomerLists.Single(x => x.EmailAddress == User.Identity.Name).ID; } var customer = braintree.Customer.Find(userId.ToString()); model.FirstName = customer.FirstName; model.LastName = customer.LastName; model.Phone = customer.Phone; model.Company = customer.Company; model.Fax = customer.Fax; model.Website = customer.Website; return(View(model)); }
public ActionResult Index(MyAccountModel model) { string publicKey = ConfigurationManager.AppSettings["Braintree.PublicKey"]; string privateKey = ConfigurationManager.AppSettings["Braintree.PrivateKey"]; string environment = ConfigurationManager.AppSettings["Braintree.Environment"]; string merchantId = ConfigurationManager.AppSettings["Braintree.MerchantId"]; Braintree.BraintreeGateway braintree = new Braintree.BraintreeGateway(environment, merchantId, publicKey, privateKey); int userId = -1; using (MemberEntities1 e = new MemberEntities1()) { userId = e.CustomerLists.Single(x => x.EmailAddress == User.Identity.Name).ID; } Braintree.CustomerRequest update = new Braintree.CustomerRequest(); update.FirstName = model.FirstName; update.LastName = model.LastName; update.Phone = model.Phone; update.Company = model.Company; update.Fax = model.Fax; update.Website = model.Website; braintree.Customer.Update(userId.ToString(), update); return(View(model)); }
public Guid PutTrip(string id = "", string origin = "", string destination = "", string departureTime = "", string arrivalTime = "", string saleTotal = "", string stops = "" , string number = "", string carrier = "", string adultCount = "") { Cart ticket = new Cart(); ticket.origin = origin; ticket.TicketId = id; ticket.destination = destination; ticket.departureTime = DateTime.Parse(departureTime); ticket.arrivalTime = DateTime.Parse(arrivalTime); ticket.saleTotal = saleTotal; ticket.stops = stops; ticket.carrier = carrier; ticket.number = number; ticket.adultCount = adultCount; ticket.Id = Guid.NewGuid(); //TODO: save selected trip details to cart using (MemberEntities1 entities = new MemberEntities1()) { entities.Carts.Add(ticket); entities.SaveChanges(); } return(ticket.Id); }
// GET: Cart public ActionResult Index(Guid?id) { Cart model = new Cart(); if (id.HasValue) { using (MemberEntities1 entities = new MemberEntities1()) { var order = entities.Carts.Single(x => x.Id == id); model.TicketId = order.TicketId; model.origin = order.origin; model.destination = order.destination; model.departureTime = order.departureTime; model.arrivalTime = order.arrivalTime; model.Id = order.Id; model.saleTotal = order.saleTotal; model.stops = order.stops; model.carrier = order.carrier; model.number = order.number; model.adultCount = order.adultCount; } } return(View(model)); }
// GET: Receipt public ActionResult Index(Guid?id) { ReceiptModel receipt = new ReceiptModel(); using (MemberEntities1 entities = new MemberEntities1()) { var r = entities.Orders.Single(x => x.OrderId == id); receipt.FirstName = r.FirstName; receipt.LastName = r.LastName; receipt.saleTotal = r.Cart.saleTotal; receipt.arrivalTime = r.Cart.arrivalTime; receipt.departureTime = r.Cart.departureTime; receipt.origin = r.Cart.origin; receipt.destination = r.Cart.destination; receipt.carrier = r.Cart.carrier; receipt.number = r.Cart.number; receipt.stops = r.Cart.stops; receipt.BillingStreet1 = r.BillingStreet1; receipt.BillingStreet2 = r.BillingStreet2; receipt.BillingCity = r.BillingCity; receipt.BillingState = r.BillingState; receipt.BillingPostalCode = r.BillingPostalCode; receipt.InvoiceDate = r.DateLastModified; } return(View(receipt)); }
public async Task <ActionResult> Registration(RegistrationModel model) { if (ModelState.IsValid) { if (WebSecurity.UserExists(model.EmailAddress)) { ModelState.AddModelError("EmailAddress", "Username already in user"); } else { string confirmationToken = WebSecurity.CreateUserAndAccount(model.EmailAddress, model.Password, null, true); string publicKey = ConfigurationManager.AppSettings["Braintree.PublicKey"]; string privateKey = ConfigurationManager.AppSettings["Braintree.PrivateKey"]; string environment = ConfigurationManager.AppSettings["Braintree.Environment"]; string merchantId = ConfigurationManager.AppSettings["Braintree.MerchantID"]; Braintree.BraintreeGateway braintree = new Braintree.BraintreeGateway(environment, merchantId, publicKey, privateKey); Braintree.CustomerRequest request = new Braintree.CustomerRequest(); request.Email = model.EmailAddress; using (MemberEntities1 entities = new MemberEntities1()) { request.Id = entities.CustomerLists.Single(x => x.EmailAddress == model.EmailAddress).ID.ToString(); } braintree.Customer.Create(request); string confirmationUrl = Request.Url.GetLeftPart(UriPartial.Authority) + "/Membership/Confirm?confirmationToken=" + confirmationToken; string sendGridApiKey = ConfigurationManager.AppSettings["SendGrid.ApiKey"]; SendGrid.SendGridAPIClient client = new SendGrid.SendGridAPIClient(sendGridApiKey); Email from = new Email("*****@*****.**"); string subject = "Confirm your new account"; Email to = new Email(model.EmailAddress); Content content = new Content("text/html", string.Format("<a href=\"{0}\">Confirm</a>", confirmationUrl)); Mail mail = new Mail(from, subject, to, content); mail.TemplateId = "00aaf54f-cf22-4cfe-98b5-b20d3cd72354"; mail.Personalization[0].AddSubstitution("-link-", confirmationUrl); var response = await client.client.mail.send.post(requestBody : mail.Get()); string message = await response.Body.ReadAsStringAsync(); if (!string.IsNullOrEmpty(message)) { throw new Exception(message); } return(RedirectToAction("ConfirmationSent")); } } return(View(model)); }
// GET: Member public ActionResult Index(int?id) { using (JinStore.Models.MemberEntities1 entities = new MemberEntities1()) { var Member = entities.CustomerLists.Single(x => x.ID == id); Members MemberModel = new Members(); MemberModel.id = Member.ID; MemberModel.FirstName = Member.FirstName; MemberModel.LastName = Member.LastName; return(View(MemberModel)); } }
// GET: Checkout public ActionResult Index(Guid?id) { CheckoutModel model2 = new CheckoutModel(); using (MemberEntities1 entities = new MemberEntities1()) { var order = entities.Carts.Single(x => x.Id == id); //model2.FirstName = order.FirstName; // model2.LastName = order.LastName; //model2.EmailAddress = order.EmailAddress; //model2.CreditCardVerificationValue = order.CVV; //model2.CreditCardExpirationMonth = order.CreditCardExpirationDate.HasValue ? order.CreditCardExpirationDate.Value.Month : 1; //model2.CreditCardExpirationYear = order.CreditCardExpirationDate.HasValue ? order.CreditCardExpirationDate.Value.Year : 1; //model2.CreditCardNumber = order.CreditCardNumber; //model2.CreditCardName = order.CreditCardName; //model2.ticketID = order.TicketId; model2.origin = order.origin; model2.destination = order.destination; model2.departureTime = order.departureTime; model2.arrivalTime = order.arrivalTime; model2.saleTotal = order.saleTotal; model2.stops = order.stops; //model2.CartItem = order.Cart.se(x => new CartModel //{ // origin = x.origin, // destination = x.destination, // departureTime = x.departureTime, // arrivalTime = x.arrivalTime //}).ToArray(); } return(View(model2)); }
public async Task <ActionResult> Index(CheckoutModel model2) { using (MemberEntities1 entities = new MemberEntities1()) { //int orderId = int.Parse(Request.Cookies["OrderID"].Value); var cart = entities.Carts.Single(x => x.Id == model2.id); Order o = new Order(); cart.Orders.Add(o); if (ModelState.IsValid) { bool addressValidationSuccessful = true; bool validateAddress = false; string smartyStreetsAuthId = ConfigurationManager.AppSettings["SmartyStreets.AuthId"]; string smartyStreetsAuthToken = ConfigurationManager.AppSettings["SmartyStreets.AuthToken"]; Rentler.SmartyStreets.SmartyStreetsClient client = new Rentler.SmartyStreets.SmartyStreetsClient(smartyStreetsAuthId, smartyStreetsAuthToken); var addresses = await client.GetStreetAddressAsync(model2.BillingStreet1, null, model2.BillingStreet2, model2.BillingCity, model2.BillingState, model2.BillingPostalCode); if (addresses.Count() == 0) { ModelState.AddModelError("BillingStreet1", "Could not find exact or similiar address"); addressValidationSuccessful = false; } else { if (!string.IsNullOrEmpty(model2.BillingStreet1) && addresses.First().delivery_line_1 != model2.BillingStreet1) { ModelState.AddModelError("BillingStreet1", string.Format("Suggested Address: {0}", addresses.First().delivery_line_1)); addressValidationSuccessful = false; } if (!string.IsNullOrEmpty(model2.BillingStreet2) && addresses.First().delivery_line_2 != model2.BillingStreet2) { ModelState.AddModelError("BillingStreet2", string.Format("Suggested Address: {0}", addresses.First().delivery_line_2)); addressValidationSuccessful = false; } if (!string.IsNullOrEmpty(model2.BillingCity) && addresses.First().components.city_name != model2.BillingCity) { ModelState.AddModelError("BillingCity", string.Format("Suggested Address: {0}", addresses.First().components.city_name)); addressValidationSuccessful = false; } if (!string.IsNullOrEmpty(model2.BillingPostalCode) && addresses.First().components.zipcode != model2.BillingPostalCode) { ModelState.AddModelError("BillingPostalCode", string.Format("Suggested Address: {0}", addresses.First().components.zipcode)); addressValidationSuccessful = false; } if (!string.IsNullOrEmpty(model2.BillingState) && addresses.First().components.state_abbreviation != model2.BillingState) { ModelState.AddModelError("BillingState", string.Format("Suggested Address: {0}", addresses.First().components.state_abbreviation)); addressValidationSuccessful = false; } } if (addressValidationSuccessful || !validateAddress) { //TODO: Validate the credit card - if it errors out, add a model error and display it to the user string publicKey = ConfigurationManager.AppSettings["Braintree.PublicKey"]; string privateKey = ConfigurationManager.AppSettings["Braintree.PrivateKey"]; string environment = ConfigurationManager.AppSettings["Braintree.Environment"]; string merchantId = ConfigurationManager.AppSettings["Braintree.MerchantId"]; Braintree.BraintreeGateway braintree = new Braintree.BraintreeGateway(environment, merchantId, publicKey, privateKey); int userId = -1; if (string.IsNullOrEmpty(User.Identity.Name)) { userId = 34; var customer = braintree.Customer.Find(userId.ToString()); Braintree.CustomerRequest request = new Braintree.CustomerRequest(); request.CreditCard = new Braintree.CreditCardRequest(); request.CreditCard.Number = model2.CreditCardNumber; request.CreditCard.CardholderName = model2.CreditCardName; request.CreditCard.ExpirationMonth = (model2.CreditCardExpirationMonth).ToString().PadLeft(2, '0'); request.CreditCard.ExpirationYear = model2.CreditCardExpirationYear.ToString(); var customerResult = braintree.Customer.Update(userId.ToString(), request); Braintree.TransactionRequest sale = new Braintree.TransactionRequest(); sale.Amount = decimal.Parse(cart.saleTotal.Replace("USD", string.Empty)); sale.CustomerId = customerResult.Target.Id; sale.PaymentMethodToken = customerResult.Target.DefaultPaymentMethod.Token; braintree.Transaction.Sale(sale); o.FirstName = model2.FirstName; o.LastName = model2.LastName; o.EmailAddress = model2.EmailAddress; o.PhoneNumber = model2.PhoneNumber; o.BillingCity = model2.BillingCity; o.BillingPostalCode = model2.BillingPostalCode; o.BillingReceipient = model2.BillingReceipient; o.BillingStreet1 = model2.BillingStreet1; o.BillingStreet2 = model2.BillingStreet2; o.BillingState = model2.BillingState; o.DateCreated = DateTime.UtcNow; o.DateLastModified = DateTime.UtcNow; entities.SaveChanges(); return(RedirectToAction("Index", "Receipt", new { id = o.OrderId })); } else { using (MemberEntities1 e = new MemberEntities1()) { userId = e.CustomerLists.Single(x => x.EmailAddress == User.Identity.Name).ID; } var customer = braintree.Customer.Find(userId.ToString()); Braintree.CustomerRequest request = new Braintree.CustomerRequest(); request.CreditCard = new Braintree.CreditCardRequest(); request.CreditCard.Number = model2.CreditCardNumber; request.CreditCard.CardholderName = model2.CreditCardName; request.CreditCard.ExpirationMonth = (model2.CreditCardExpirationMonth).ToString().PadLeft(2, '0'); request.CreditCard.ExpirationYear = model2.CreditCardExpirationYear.ToString(); var customerResult = braintree.Customer.Update(userId.ToString(), request); Braintree.TransactionRequest sale = new Braintree.TransactionRequest(); sale.Amount = decimal.Parse(cart.saleTotal.Replace("USD", string.Empty)); sale.CustomerId = customerResult.Target.Id; sale.PaymentMethodToken = customerResult.Target.DefaultPaymentMethod.Token; braintree.Transaction.Sale(sale); o.FirstName = model2.FirstName; o.LastName = model2.LastName; o.EmailAddress = model2.EmailAddress; o.PhoneNumber = model2.PhoneNumber; o.BillingCity = model2.BillingCity; o.BillingPostalCode = model2.BillingPostalCode; o.BillingReceipient = model2.BillingReceipient; o.BillingStreet1 = model2.BillingStreet1; o.BillingStreet2 = model2.BillingStreet2; o.BillingState = model2.BillingState; o.DateCreated = DateTime.UtcNow; o.DateLastModified = DateTime.UtcNow; entities.SaveChanges(); return(RedirectToAction("Index", "Receipt", new { id = o.OrderId })); } } } } return(View(model2)); }