Files
ZuneShell.dll/ZuneUI/CountryFieldValidationPropertyDescriptor.cs
T

86 lines
3.2 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneUI.CountryFieldValidationPropertyDescriptor
// Assembly: ZuneShell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: FC8028F3-A47B-4FB4-B35B-11D1752D8264
// Assembly location: C:\Program Files\Zune\ZuneShell.dll
using Microsoft.Zune.Service;
using System.Text.RegularExpressions;
namespace ZuneUI
{
public class CountryFieldValidationPropertyDescriptor : PropertyDescriptor
{
private CountryFieldValidatorType _fieldValidatorType;
public CountryFieldValidationPropertyDescriptor(
string name,
CountryFieldValidatorType fieldValidatorType)
: base(name, string.Empty, string.Empty, false)
{
this._fieldValidatorType = fieldValidatorType;
}
internal override string GetOverlayString(object state)
{
string str = string.Empty;
AccountCountry accountCountry = this.GetAccountCountry(state);
if (accountCountry != null)
{
CountryFieldValidator validator = accountCountry.GetValidator(this._fieldValidatorType);
if (validator != null)
str = validator.FriendlyFormat;
}
return str;
}
internal override string GetLabelString(object state)
{
string str = string.Empty;
AccountCountry accountCountry = this.GetAccountCountry(state);
if (accountCountry != null)
{
CountryFieldValidator validator = accountCountry.GetValidator(this._fieldValidatorType);
if (validator != null)
str = Shell.LoadString(validator.NameStringId);
}
return str;
}
public override bool IsValidInternal(string value, object state)
{
string pattern = null;
AccountCountry accountCountry = this.GetAccountCountry(state);
if (accountCountry == null)
return true;
if (accountCountry != null)
{
CountryFieldValidator validator = accountCountry.GetValidator(this._fieldValidatorType);
if (validator != null && !string.IsNullOrEmpty(validator.Regex))
pattern = validator.Regex;
}
return string.IsNullOrEmpty(pattern) || value != null && Regex.IsMatch(value, pattern);
}
public override bool IsRequiredInternal(object state)
{
AccountCountry accountCountry = this.GetAccountCountry(state);
if (accountCountry != null)
{
CountryFieldValidator validator = accountCountry.GetValidator(this._fieldValidatorType);
if (validator != null && !string.IsNullOrEmpty(validator.Regex))
return true;
}
return false;
}
private AccountCountry GetAccountCountry(object state)
{
AccountCountry accountCountry = null;
if (state != null)
accountCountry = AccountCountryList.Instance.GetCountry(state as string);
return accountCountry;
}
}
}