void SetupCreditCardFields()
        {
            creditCardNumberEntry.TextChanged += (sender, e) =>
            {
                var oldTextValueLength = e.OldTextValue != null ? e.OldTextValue.Length : 0;
                if (e.NewTextValue != null && e.NewTextValue.Length > oldTextValueLength)
                {
                    string text      = creditCardNumberEntry.Text.Replace(" ", "");
                    string newNumber = string.Empty;
                    for (int i = 0; i < text.Length / 4; i++)
                    {
                        newNumber += text.Substring(i * 4, 4) + " ";
                    }
                    var lastNumber = text.Length / 4 * 4;
                    if (lastNumber >= 0 && text.Length > lastNumber)
                    {
                        newNumber += text.Substring(lastNumber);
                    }
                    creditCardNumberEntry.Text = newNumber;
                }

                var cardNumber = creditCardNumberEntry.Text.Replace(" ", "");
                var lengthFrom = 12;
                var lengthTo   = -1;
                var cardType   = mAppServices.GetCreditCardType(cardNumber);
                cvvValidator.MinLength = 3;
                EntryCvv.Placeholder   = AppResources.CVV;
                switch (cardType)
                {
                case CreditCardType.Amex:
                    lengthFrom             = 15;
                    lengthTo               = 15;
                    EntryCvv.Placeholder   = AppResources.CID;
                    cvvValidator.MinLength = 4;
                    break;

                case CreditCardType.Discover:
                    EntryCvv.Placeholder = AppResources.CID;
                    lengthFrom           = 16;
                    lengthTo             = 16;
                    break;

                case CreditCardType.Mastercard:
                    EntryCvv.Placeholder = AppResources.CVC2;
                    lengthFrom           = 16;
                    lengthTo             = 16;
                    break;

                case CreditCardType.Jcb:
                    EntryCvv.Placeholder = AppResources.CVV;
                    lengthFrom           = 16;
                    lengthTo             = 19;
                    break;

                case CreditCardType.Maestro:
                    EntryCvv.Placeholder = AppResources.CVV;
                    lengthFrom           = 12;
                    lengthTo             = 19;
                    break;

                case CreditCardType.Visa:
                    EntryCvv.Placeholder = AppResources.CVV;
                    lengthFrom           = 12;
                    lengthTo             = 19;
                    break;
                }
                cvvValidator.FieldName = EntryCvv.Placeholder;

                if (cardNumber.Length >= lengthFrom && (lengthTo < 0 || cardNumber.Length <= lengthTo))
                {
                    LabelCreditCardNumberValidator.Text = " ";
                }
                else
                {
                    if (lengthTo > 0)
                    {
                        if (lengthTo == lengthFrom)
                        {
                            LabelCreditCardNumberValidator.Text = string.Format(AppResources.CreditCardNumberRequire, lengthFrom, lengthTo);
                        }
                        else
                        {
                            LabelCreditCardNumberValidator.Text = string.Format(AppResources.CreditCardNumberRequireMinMax, lengthFrom, lengthTo);
                        }
                    }
                    else
                    {
                        LabelCreditCardNumberValidator.Text = string.Format(AppResources.CreditCardNumberRequireMin, lengthFrom);
                    }
                }
            };

            EntryMMYY.TextChanged += (sender, e) =>
            {
                var length = EntryMMYY.Text.Length;
                if (length == 1)
                {
                    try
                    {
                        int month = int.Parse(EntryMMYY.Text);
                        if (month < 2)
                        {
                        }
                        else if (month >= 2)
                        {
                            EntryMMYY.Text = "0" + month + "/";
                        }
                    }
                    catch (Exception)
                    {
                        EntryMMYY.Text = e.OldTextValue;
                    }
                }
                if (length == 2)
                {
                    var oldLength = e.OldTextValue.Length;
                    if (oldLength == 3)
                    {
                        EntryMMYY.Text = EntryMMYY.Text.Substring(0, 1);
                    }
                    else
                    {
                        try
                        {
                            int month = int.Parse(EntryMMYY.Text);
                            if (month <= 12)
                            {
                                EntryMMYY.Text = EntryMMYY.Text + "/";
                            }
                            else
                            {
                                EntryMMYY.Text = e.OldTextValue;
                            }
                        }
                        catch (Exception)
                        {
                            EntryMMYY.Text = e.OldTextValue;
                        }
                    }
                }
                if (length > FormatDate.Length)
                {
                    EntryMMYY.Text = e.OldTextValue;
                }

                try
                {
                    if (EntryMMYY.Text.Length != FormatDate.Length)
                    {
                        LabelMMYY.Text = AppResources.ExpirationDateNotCorrect;
                    }
                    else
                    {
                        var date = DateTime.ParseExact(EntryMMYY.Text, FormatDate, null);
                        if (date.Date < DateTime.Now.AddDays(1 - DateTime.Now.Day).Date)
                        {
                            LabelMMYY.Text = AppResources.ExpirationDateIsExpired;
                        }
                        else
                        {
                            LabelMMYY.Text = " ";
                        }
                    }
                }
                catch (Exception)
                {
                    LabelMMYY.Text = AppResources.ExpirationDateNotCorrect;
                }
            };
        }