private int SaveGiftCertificate()
        {
            if (Page.IsValid)
            {
                // VALIDATE IF A PROPER EXPIRE DATE IS SELECTED
                if (ExpireDate.SelectedEndDate != DateTime.MinValue && DateTime.Compare(ExpireDate.SelectedEndDate, LocaleHelper.LocalNow) < 0)
                {
                    CustomValidator dateValidator = new CustomValidator();
                    dateValidator.ControlToValidate = "Name"; // THIS SHOULD BE "ExpireDate" CONTROL, BUT THAT CANNOT BE VALIDATED
                    dateValidator.Text         = "*";
                    dateValidator.ErrorMessage = "Expiration date cannot be in the past.";
                    dateValidator.IsValid      = false;
                    phExpirationValidator.Controls.Add(dateValidator);
                    return(0);
                }
                GiftCertificate _GiftCertificate = new GiftCertificate();
                _GiftCertificate.Name           = Name.Text;
                _GiftCertificate.Store          = AbleContext.Current.Store;
                _GiftCertificate.CreatedBy      = AbleContext.Current.UserId;
                _GiftCertificate.Balance        = AlwaysConvert.ToDecimal(Balance.Text);
                _GiftCertificate.ExpirationDate = ExpireDate.NullableSelectedEndDate;
                _GiftCertificate.CreateDate     = LocaleHelper.LocalNow;
                _GiftCertificate.AddCreatedManuallyTransaction();

                if (Activated.Checked)
                {
                    IGiftCertKeyProvider gckProvider = AbleContext.Container.Resolve <IGiftCertKeyProvider>();
                    _GiftCertificate.SerialNumber = gckProvider.GenerateGiftCertificateKey();
                    _GiftCertificate.AddActivatedTransaction();
                }
                else
                {
                    _GiftCertificate.SerialNumber = "";
                }

                _GiftCertificate.Save();
                return(_GiftCertificate.Id);
            }
            return(0);
        }