コード例 #1
0
        protected void Page_Init(object sender, EventArgs e)
        {
            _GiftCertificateId = AlwaysConvert.ToInt(Request.QueryString["GiftCertificateId"]);
            _GiftCertificate   = GiftCertificateDataSource.Load(_GiftCertificateId);
            if (_GiftCertificate == null)
            {
                Response.Redirect("MyAccount.aspx");
            }
            if ((_GiftCertificate.OrderItem.Order.UserId != AbleContext.Current.UserId) && (!AbleContext.Current.User.IsInRole("Admin")))
            {
                Response.Redirect("MyAccount.aspx");
            }

            if (!Page.IsPostBack)
            {
                //UPDATE CAPTION
                if (_GiftCertificate.SerialNumber == null || _GiftCertificate.SerialNumber.Length == 0)
                {
                    Caption.Text = "Not Assigned. Gift Certificate is not validated yet.";
                }
                else
                {
                    Caption.Text = String.Format(Caption.Text, _GiftCertificate.Name, _GiftCertificate.OrderItem.Order.OrderNumber);
                }
                BindGiftCertificate();
            }
        }
コード例 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            _OrderId           = AbleCommerce.Code.PageHelper.GetOrderId();
            _GiftCertificateId = AlwaysConvert.ToInt(Request.QueryString["GiftCertificateId"]);
            _GiftCertificate   = GiftCertificateDataSource.Load(_GiftCertificateId);

            if (_GiftCertificate == null)
            {
                RedirectBack();
            }

            if (!Page.IsPostBack)
            {
                SerialNumber.Text = _GiftCertificate.SerialNumber;
                Name.Text         = _GiftCertificate.Name;
                Balance.Text      = string.Format("{0:F2}", _GiftCertificate.Balance);
                ExpireDate.NullableSelectedDate = _GiftCertificate.ExpirationDate;
                if (!string.IsNullOrEmpty(_GiftCertificate.SerialNumber))
                {
                    ReGenerateSerialNumberLbl.Visible = true;
                    GenerateSerialNumberLbl.Visible   = false;
                }
                else
                {
                    ReGenerateSerialNumberLbl.Visible = false;
                    GenerateSerialNumberLbl.Visible   = true;
                }
            }
        }
コード例 #3
0
        protected void GiftCertificatesGrid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int             GiftCertificateId = AlwaysConvert.ToInt(e.CommandArgument);
            GiftCertificate gc = GiftCertificateDataSource.Load(GiftCertificateId);

            if (gc == null)
            {
                return;
            }
            IGiftCertKeyProvider provider = AbleContext.Container.Resolve <IGiftCertKeyProvider>();

            if (e.CommandName.Equals("Generate"))
            {
                gc.SerialNumber = provider.GenerateGiftCertificateKey();
                gc.AddActivatedTransaction();
                gc.Save();
                GiftCertificatesGrid.DataBind();
            }
            else if (e.CommandName.Equals("Deactivate"))
            {
                gc.SerialNumber = "";
                gc.AddDeactivatedTransaction();
                gc.Save();
                GiftCertificatesGrid.DataBind();
            }
        }
コード例 #4
0
        /// <summary>
        /// Submits an authorization request
        /// </summary>
        /// <param name="authorizeRequest">The authorization request</param>
        /// <returns>Transaction that represents the result of the authorization request</returns>
        public override Transaction DoAuthorize(AuthorizeTransactionRequest authorizeRequest)
        {
            Transaction transaction = new Transaction();

            transaction.PaymentGatewayId = this.PaymentGatewayId;
            //always use authorize capture.
            transaction.TransactionType = TransactionType.AuthorizeCapture;

            string          serialNumber = authorizeRequest.Payment.AccountData;
            GiftCertificate gc           = GiftCertificateDataSource.LoadForSerialNumber(serialNumber);

            string errorMessage = string.Empty;

            if (gc == null)
            {
                errorMessage = "No gift certificate found with given serial number.";
            }
            else if (gc.IsExpired())
            {
                errorMessage = "Gift certificate is expired.";
            }
            else if (gc.Balance < authorizeRequest.Amount)
            {
                errorMessage = "Gift certificate does not have enough balance to complete this transaction.";
            }
            else
            {
                LSDecimal newAmount = gc.Balance - authorizeRequest.Amount;
                gc.Balance = newAmount;
                GiftCertificateTransaction trans = new GiftCertificateTransaction();
                trans.TransactionDate = LocaleHelper.LocalNow;
                trans.Amount          = authorizeRequest.Amount;
                trans.OrderId         = authorizeRequest.Payment.OrderId;
                trans.Description     = string.Format("An amount of {0:lc} used in purchase. Remaining balance is {1:lc}.", authorizeRequest.Amount, newAmount);
                gc.Transactions.Add(trans);
                gc.Save();
            }

            if (string.IsNullOrEmpty(errorMessage))
            {
                transaction.TransactionStatus = TransactionStatus.Successful;
                transaction.ResponseCode      = "0";
                transaction.ResponseMessage   = "SUCCESS";
                transaction.Amount            = authorizeRequest.Amount;
            }
            else
            {
                transaction.TransactionStatus = TransactionStatus.Failed;
                transaction.ResponseCode      = "1";
                transaction.ResponseMessage   = errorMessage;
                transaction.Amount            = authorizeRequest.Amount;
            }

            return(transaction);
        }
コード例 #5
0
 protected void Page_Init(object sender, EventArgs e)
 {
     _GiftCertificateId = AlwaysConvert.ToInt(Request.QueryString["GiftCertificateId"]);
     _GiftCertificate   = GiftCertificateDataSource.Load(_GiftCertificateId);
     if (_GiftCertificate == null)
     {
         Response.Redirect("Default.aspx");
     }
     if (!Page.IsPostBack)
     {
         //UPDATE CAPTION
         Caption.Text = String.Format(Caption.Text, _GiftCertificate.Name, _GiftCertificate.OrderItem.Order.Id);
         BindGiftCertificate();
     }
 }
コード例 #6
0
        protected void Page_Init(object sender, EventArgs e)
        {
            _GiftCertificateId = AlwaysConvert.ToInt(Request.QueryString["GiftCertificateId"]);
            _GiftCertificate   = GiftCertificateDataSource.Load(_GiftCertificateId);
            if (_GiftCertificate == null)
            {
                Response.Redirect("Default.aspx");
            }

            if (!Page.IsPostBack)
            {
                BindTransactions();
                Caption.Text = string.Format(Caption.Text, _GiftCertificate.Name);
            }
        }
コード例 #7
0
 protected void MultipleRowDelete_Click(object sender, EventArgs e)
 {
     // Looping through all the rows in the GridView
     foreach (GridViewRow row in GiftCertificatesGrid.Rows)
     {
         CheckBox checkbox = (CheckBox)row.FindControl("DeleteCheckbox");
         if ((checkbox != null) && (checkbox.Checked))
         {
             // Retreive the GiftCertificateId
             int             giftCertificateId = Convert.ToInt32(GiftCertificatesGrid.DataKeys[row.RowIndex].Value);
             GiftCertificate gc = GiftCertificateDataSource.Load(giftCertificateId);
             if (gc != null)
             {
                 gc.Delete();
             }
         }
     }
     GiftCertificatesGrid.DataBind();
 }
コード例 #8
0
        protected bool IsDeleteable(int giftCertificateId)
        {
            GiftCertificate gc = GiftCertificateDataSource.Load(giftCertificateId);

            if (HasSerialNumber(gc) && !gc.IsExpired())
            {
                // IF ZERO BALANCE WITH ACTIVE GIFT CERTIFICATE
                if (gc.Balance == 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(true);
            }
        }
コード例 #9
0
 protected void GiftCertificateButton_Click(object sender, EventArgs e)
 {
     if (Page.IsValid)
     {
         bool checkOut = true;
         if (CheckingOut != null)
         {
             // CREATE THE PAYMENT OBJECT
             Payment payment        = GetPayment();
             CheckingOutEventArgs c = new CheckingOutEventArgs(payment);
             CheckingOut(this, c);
             checkOut = !c.Cancel;
         }
         if (checkOut)
         {
             Basket basket = AbleContext.Current.User.Basket;
             GiftCertificateNumber.Text = StringHelper.StripHtml(GiftCertificateNumber.Text);
             GiftCertificate gc = GiftCertificateDataSource.LoadForSerialNumber(GiftCertificateNumber.Text);
             if (gc == null)
             {
                 GiftCertPaymentErrors.Text = "This is not a valid gift certificate : " + GiftCertificateNumber.Text;
             }
             else if (gc.Balance <= 0)
             {
                 GiftCertPaymentErrors.Text = "There is no balance left for this gift certificate : " + GiftCertificateNumber.Text;
             }
             else if (gc.IsExpired())
             {
                 GiftCertPaymentErrors.Text = "This gift certificate is expired : " + GiftCertificateNumber.Text;
             }
             else if (AlreadyInUse(basket, gc))
             {
                 GiftCertPaymentErrors.Text = "This gift certificate is already applied to your basket : " + GiftCertificateNumber.Text;
             }
             else
             {
                 // process this gift certificate
                 decimal    basketTotal = basket.Items.TotalPrice();
                 BasketItem bitem       = new BasketItem();
                 bitem.Basket        = basket;
                 bitem.OrderItemType = OrderItemType.GiftCertificatePayment;
                 bitem.Price         = -(gc.Balance > basketTotal ? basketTotal : gc.Balance);
                 bitem.Quantity      = 1;
                 bitem.Name          = gc.Name;
                 bitem.Sku           = gc.SerialNumber;
                 basket.Items.Add(bitem);
                 basket.Save();
                 decimal remBalance = basket.Items.TotalPrice();
                 if (remBalance > 0)
                 {
                     GiftCertPaymentErrors.Text = string.Format("A payment of {0} will be made using gift certificate {1}. It will leave a balance of {2} for this order. Please make additional payments.", gc.Balance.LSCurrencyFormat("lc"), GiftCertificateNumber.Text, remBalance.LSCurrencyFormat("lc"));
                 }
                 else
                 {
                     //payment done. process checkout
                     ICheckoutService checkoutService  = AbleContext.Resolve <ICheckoutService>();
                     CheckoutRequest  checkoutRequest  = new CheckoutRequest(basket);
                     CheckoutResponse checkoutResponse = checkoutService.ExecuteCheckout(checkoutRequest);
                     if (checkoutResponse.Success)
                     {
                         if (CheckedOut != null)
                         {
                             CheckedOut(this, new CheckedOutEventArgs(checkoutResponse));
                         }
                         Response.Redirect(AbleCommerce.Code.NavigationHelper.GetReceiptUrl(checkoutResponse.Order.OrderNumber));
                     }
                     else
                     {
                         IList <string> warningMessages = checkoutResponse.WarningMessages;
                         if (warningMessages.Count == 0)
                         {
                             warningMessages.Add("The order could not be submitted at this time.  Please try again later or contact us for assistance.");
                         }
                         if (CheckedOut != null)
                         {
                             CheckedOut(this, new CheckedOutEventArgs(checkoutResponse));
                         }
                     }
                 }
             }
             if (!string.IsNullOrEmpty(GiftCertPaymentErrors.Text))
             {
                 GiftCertErrorsPanel.Visible = true;
             }
         }
     }
 }
コード例 #10
0
 public static bool HasGiftCertificates()
 {
     return(GiftCertificateDataSource.CountForStatus(GiftCertificateStatus.Active) > 0);
 }