private int SaveGiftCertificate() { if (Page.IsValid) { IGiftCertKeyProvider gckProvider = AbleContext.Container.Resolve <IGiftCertKeyProvider>(); _GiftCertificate.Name = Name.Text; decimal newBalance = AlwaysConvert.ToDecimal(Balance.Text); if (newBalance != _GiftCertificate.Balance) { _GiftCertificate.AddBalanceUpdatedTransaction(_GiftCertificate.Balance, newBalance); _GiftCertificate.Balance = newBalance; } DateTime newDate = ExpireDate.SelectedEndDate; DateTime oldDate = _GiftCertificate.ExpirationDate.HasValue ? _GiftCertificate.ExpirationDate.Value : DateTime.MinValue; if (!oldDate.Equals(newDate)) { _GiftCertificate.AddExpiryUpdatedTransaction(oldDate, newDate); _GiftCertificate.ExpirationDate = ExpireDate.NullableSelectedEndDate; } if (GenerateSerialNumber.Checked) { if (string.IsNullOrEmpty(_GiftCertificate.SerialNumber)) { _GiftCertificate.AddActivatedTransaction(); } _GiftCertificate.SerialNumber = gckProvider.GenerateGiftCertificateKey(); } _GiftCertificate.Save(); return(_GiftCertificate.Id); } return(0); }