using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ComponentModel; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using SPC.Kiosk.Base; using SPC.Kiosk.Common; using SPC.Kiosk.Popup.Model; namespace SPC.Kiosk.Popup { /// /// DiscountAndValue.xaml에 대한 상호 작용 논리 /// public partial class VirtureMobileHappyCoupon : UserControl { #region [ Members ] /// /// ItemData /// public static readonly DependencyProperty ItemDataProperty = DependencyProperty.Register(nameof(ItemData), typeof(M_MobileCouponDetail), typeof(VirtureMobileHappyCoupon), new PropertyMetadata(new M_MobileCouponDetail(), new PropertyChangedCallback(OnItemDataPropertyChanged))); /// /// Display Language /// public static readonly DependencyProperty DisplayLanguagePropery = DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(VirtureMobileHappyCoupon), new PropertyMetadata(SupportLanguageType.ko)); /// /// Button Switch /// public static readonly DependencyProperty SwitchPropery = DependencyProperty.Register(nameof(Switch), typeof(bool), typeof(VirtureMobileHappyCoupon), new PropertyMetadata(false, new PropertyChangedCallback(OnSwitchProperyChanged))); public static readonly DependencyProperty EnabledPropery = DependencyProperty.Register(nameof(Enabled), typeof(bool), typeof(VirtureMobileHappyCoupon), new PropertyMetadata(true, new PropertyChangedCallback(OnEnabledProperyChanged))); /// /// Button Switch /// public bool Switch { get { return (bool)GetValue(SwitchPropery); } set { SetValue(SwitchPropery, value);} } /// /// Button Enabled /// public bool Enabled { get { return (bool)GetValue(EnabledPropery); } set { SetValue(EnabledPropery, value); } } /// /// ItemData /// public M_MobileCouponDetail ItemData { get { return (M_MobileCouponDetail)GetValue(ItemDataProperty); } set { SetValue(ItemDataProperty, value); } } /// /// Display Language /// public SupportLanguageType DisplayLanguage { get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } set { SetValue(DisplayLanguagePropery, value); } } /// /// Button NormalBrush /// public string ButtonNormalBrush { get; set; } public string ButtonDownBrush { get; set; } public string ButtonSwitchOnBrush { get; set; } public string ButtonDisableBrush { get; set; } #region [ RoutedEvent 'MouseClicked' ] /// /// MouseClicked Event /// public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(VirtureMobileHappyCoupon)); /// /// MouseClicked Routed Event Handler /// public event RoutedEventHandler MouseClicked { add { AddHandler(MouseClickedEvent, value); } remove { RemoveHandler(MouseClickedEvent, value); } } #endregion RoutedEvent 'MouseClicked' #endregion Members #region [ Ctor & Etc ] /// /// Ctor /// public VirtureMobileHappyCoupon() { ButtonNormalBrush = ResourceManager.GetNximagePathAdd("btn_coupon_n.png", CommonValue.PBdesignImagesPath); ButtonDownBrush = ResourceManager.GetNximagePathAdd("btn_coupon_p.png", CommonValue.PBdesignImagesPath); ButtonSwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_coupon_s.png", CommonValue.PBdesignImagesPath); ButtonDisableBrush = ResourceManager.GetNximagePathAdd("btn_coupon_d.png", CommonValue.PBdesignImagesPath); InitializeComponent(); } #endregion Ctor & Etc #region [ Methods ] /// /// Raise MouseClicked Event /// private void RaiseMouseClickedEvent(object _sender) { RoutedEventArgs newEventArgs = new RoutedEventArgs(VirtureMobileHappyCoupon.MouseClickedEvent, _sender); RaiseEvent(newEventArgs); } #endregion Methods #region [ Event Handlers ] private static void OnSwitchProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var target = d as VirtureMobileHappyCoupon; target.OptionButton.Switch = (bool)e.NewValue; } private static void OnEnabledProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var target = d as VirtureMobileHappyCoupon; target.OptionButton.Enabled = (bool)e.NewValue; } private static void OnItemDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var target = d as VirtureMobileHappyCoupon; if (e.OldValue is M_MobileCouponDetail oldValue) { oldValue.PropertyChanged -= target.ItemData_PropertyChanged; } if (e.NewValue is M_MobileCouponDetail newValue) { newValue.PropertyChanged += target.ItemData_PropertyChanged; if (newValue.Status.Equals(MobileCouponStatusType.CanUse)) { switch (newValue.Type) { case MobileCouponType.NormalValue: target.RemainAmount.Text = string.Format("잔액:{0}", newValue.CanUsingPrice.ToString("#,##0")); break; case MobileCouponType.ValueFixed: target.RemainAmount.Text = string.Format("1회:{0}", newValue.CanUsingPrice.ToString("#,##0")); break; case MobileCouponType.ValueLimit: target.RemainAmount.Text = string.Format("최대:{0}", newValue.CanUsingPrice.ToString("#,##0")); break; } target.Enabled = true; target.UsingValue.Visibility = newValue.DiscountPrice.Equals(0) ? Visibility.Collapsed : Visibility.Visible; } else { target.Enabled = false; target.UsingValue.Visibility = Visibility.Collapsed; } } } private void ItemData_PropertyChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case "DiscountPrice": if (this.ItemData.Status.Equals(MobileCouponStatusType.CanUse)) { this.UsingValue.Visibility = this.ItemData.DiscountPrice.Equals(0) ? Visibility.Collapsed : Visibility.Visible; this.Switch = this.ItemData.DiscountPrice > 0; } else { this.UsingValue.Visibility = Visibility.Collapsed; } break; } } private void OptionButton_MouseClicked(object sender, RoutedEventArgs e) { RaiseMouseClickedEvent(this.ItemData); } #endregion Event Handlers } }