コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        // 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));
        }
コード例 #5
0
        // 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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        // 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));
            }
        }
コード例 #8
0
        // 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));
        }
コード例 #9
0
        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));
        }