protected void LogIn(object sender, EventArgs e)
        {
            if (IsValid)
            {
                // Validate the user password
                var manager       = Context.GetOwinContext().GetUserManager <ApplicationUserManager>();
                var signinManager = Context.GetOwinContext().GetUserManager <ApplicationSignInManager>();

                // This doen't count login failures towards account lockout
                // To enable password failures to trigger lockout, change to shouldLockout: true
                var result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout: false);

                switch (result)
                {
                case SignInStatus.Success:
                    IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
                    Canabiz.Logic.ShoppingCartActions usersShoppingCart = new Canabiz.Logic.ShoppingCartActions();
                    String cartId = usersShoppingCart.GetCartId();
                    usersShoppingCart.MigrateCart(cartId, Email.Text);
                    break;

                case SignInStatus.LockedOut:
                    Response.Redirect("/Account/Lockout");
                    break;

                case SignInStatus.RequiresVerification:
                    Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}",
                                                    Request.QueryString["ReturnUrl"],
                                                    RememberMe.Checked),
                                      true);
                    break;

                case SignInStatus.Failure:
                default:
                    FailureText.Text     = "Invalid login attempt";
                    ErrorMessage.Visible = true;
                    break;
                }
            }
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         NVPAPICaller payPalCaller = new NVPAPICaller();
         string       retMsg       = "";
         string       token        = "";
         string       PayerID      = "";
         NVPCodec     decoder      = new NVPCodec();
         token = Session["token"].ToString();
         bool ret = payPalCaller.GetCheckoutDetails(token, ref PayerID, ref
                                                    decoder, ref retMsg);
         if (ret)
         {
             Session["payerId"] = PayerID;
             var myOrder = new Order();
             myOrder.OrderDate =
                 Convert.ToDateTime(decoder["TIMESTAMP"].ToString());
             myOrder.Username  = User.Identity.Name;
             myOrder.FirstName = decoder["FIRSTNAME"].ToString();
             myOrder.LastName  = decoder["LASTNAME"].ToString();
             myOrder.Address   = decoder["SHIPTOSTREET"].ToString();
             myOrder.City      = decoder["SHIPTOCITY"].ToString();
             //myOrder.State = decoder["SHIPTOSTATE"].ToString();
             myOrder.PostalCode = decoder["SHIPTOZIP"].ToString();
             myOrder.Country    = decoder["SHIPTOCOUNTRYCODE"].ToString();
             myOrder.Email      = decoder["EMAIL"].ToString();
             //myOrder.Total = Convert.ToDecimal(decoder["AMT"]);
             // myOrder.Total = Convert.ToInt32(decoder["AMT"]);
             string var = decoder["AMT"];
             myOrder.Total = Decimal.Parse(var, CultureInfo.InvariantCulture);
             // Verify total payment amount as set on CheckoutStart.aspx.
             try
             {
                 decimal paymentAmountOnCheckout =
                     Convert.ToDecimal(Session["payment_amt"].ToString());
                 decimal paymentAmoutFromPayPal =
                     Decimal.Parse(decoder["AMT"], CultureInfo.InvariantCulture);
                 if (paymentAmountOnCheckout != paymentAmoutFromPayPal)
                 {
                     Response.Redirect("CheckoutError.aspx?" +
                                       "Desc=Amount%20total%20mismatch.");
                 }
             }
             catch (Exception)
             {
                 Response.Redirect("CheckoutError.aspx?" +
                                   "Desc=Amount%20total%20mismatch.");
             }
             // Get DB context.
             ProductContext _db = new ProductContext();
             // Add order to DB.
             _db.Orders.Add(myOrder);
             _db.SaveChanges();
             // Get the shopping cart items and process them.
             using (Canabiz.Logic.ShoppingCartActions usersShoppingCart = new
                                                                          Canabiz.Logic.ShoppingCartActions())
             {
                 List <CartItem> myOrderList = usersShoppingCart.GetCartItems();
                 // Add OrderDetail information to the DB for each product purchased.
                 for (int i = 0; i < myOrderList.Count; i++)
                 {
                     // Create a new OrderDetail object.
                     var myOrderDetail = new OrderDetail();
                     myOrderDetail.OrderId   = myOrder.OrderId;
                     myOrderDetail.Username  = User.Identity.Name;
                     myOrderDetail.ProductId = myOrderList[i].ProductId;
                     myOrderDetail.Quantity  = myOrderList[i].Quantity;
                     myOrderDetail.UnitPrice = myOrderList[i].Product.UnitPrice;
                     // Add OrderDetail to DB.
                     _db.OrderDetails.Add(myOrderDetail);
                     _db.SaveChanges();
                 }
                 // Set OrderId.
                 Session["currentOrderId"] = myOrder.OrderId;
                 // Display Order information.
                 List <Order> orderList = new List <Order>();
                 orderList.Add(myOrder);
                 ShipInfo.DataSource = orderList;
                 ShipInfo.DataBind();
                 // Display OrderDetails.
                 OrderItemList.DataSource = myOrderList;
                 OrderItemList.DataBind();
             }
         }
         else
         {
             Response.Redirect("CheckoutError.aspx?" + retMsg);
         }
     }
 }
Exemplo n.º 3
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         // Verify user has completed the checkout process.
         if ((string)Session["userCheckoutCompleted"] != "true")
         {
             Session["userCheckoutCompleted"] = string.Empty;
             Response.Redirect("CheckoutError.aspx?" +
                               "Desc=Unvalidated%20Checkout.");
         }
         NVPAPICaller payPalCaller       = new NVPAPICaller();
         string       retMsg             = "";
         string       token              = "";
         string       finalPaymentAmount = "";
         string       PayerID            = "";
         NVPCodec     decoder            = new NVPCodec();
         token              = Session["token"].ToString();
         PayerID            = Session["payerId"].ToString();
         finalPaymentAmount = Session["payment_amt"].ToString();
         bool ret = payPalCaller.DoCheckoutPayment(finalPaymentAmount, token,
                                                   PayerID, ref decoder, ref retMsg);
         if (ret)
         {
             // Retrieve PayPal confirmation value.
             string PaymentConfirmation =
                 decoder["PAYMENTINFO_0_TRANSACTIONID"].ToString();
             TransactionId.Text = PaymentConfirmation;
             ProductContext _db = new ProductContext();
             // Get the current order id.
             int currentOrderId = -1;
             if (Session["currentOrderId"] != string.Empty)
             {
                 currentOrderId = Convert.ToInt32(Session["currentOrderID"]);
             }
             Order myCurrentOrder;
             if (currentOrderId >= 0)
             {
                 // Get the order based on order id.
                 myCurrentOrder = _db.Orders.Single(o => o.OrderId ==
                                                    currentOrderId);
                 // Update the order to reflect payment has been completed.
                 myCurrentOrder.PaymentTransactionId = PaymentConfirmation;
                 // Save to DB.
                 _db.SaveChanges();
             }
             // Clear shopping cart.
             using (Canabiz.Logic.ShoppingCartActions usersShoppingCart =
                        new Canabiz.Logic.ShoppingCartActions())
             {
                 usersShoppingCart.EmptyCart();
             }
             // Clear order id.
             Session["currentOrderId"] = string.Empty;
         }
         else
         {
             Response.Redirect("CheckoutError.aspx?" + retMsg);
         }
     }
 }