// edit mode
 public frmCardDetails(ICardManager cdMgr, CardDetail cdDetail, CardDetailMode mode)
 {
     _cardManager = cdMgr;
     _cardDetail  = cdDetail;
     _mode        = mode;
     InitializeComponent();
 }
 // add mode
 public frmCardDetails(ICardManager cdMgr)
 {
     _cardManager = cdMgr;
     // _cardDetail = null;
     _mode = CardDetailMode.Add;
     InitializeComponent();
 }
        private void btnSaveEdit_Click(object sender, RoutedEventArgs e)
        {
            if (_mode == CardDetailMode.View) // if we're in View Mode we need to get to edit mode
            {
                _mode = CardDetailMode.Edit;
                setupEditMode();
                return;
            }
            var card = new Card();

            switch (_mode)
            {
            case CardDetailMode.Add:
                if (captureCard(card) == false)
                {
                    return;
                }

                try
                {
                    if (_cardManager.AddCard(card))
                    {
                        this.DialogResult = true;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                break;

            case CardDetailMode.Edit:
                if (captureCard(card) == false)
                {
                    return;
                }
                card.CardID = _cardDetail.Card.CardID;
                var oldCard = _cardDetail.Card;
                try
                {
                    if (_cardManager.EditCard(card, oldCard))
                    {
                        this.DialogResult = true;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                break;

            case CardDetailMode.View:
                break;

            default:
                break;
            }
        }