/// <summary> /// Initializes a new instance of the DomainDetailsViewModel class. /// </summary> public DomainDetailsViewModel() { if (IsInDesignMode) { // Code runs in Blend --> create design time data. SelectedDomain = new Result() { Availability = "available", Subdomain = "ferr.et", Domain = "ferr.et", Path = "/land", RegisterUrl= "http://register.com" }; SelectedDomainInfo = new DomainrInfo { Domain = "ferr.et", WhoisUrl = "https://domainr.com/ferr.et/whois", Tld = new Tld { Domain = "et", WikipediaUrl = "http://wikipedia.org/wiki/.et", IanaUrl = "http://www.iana.org/domains/root/db/et.html" }, Availability = Constants.AvailabilityAvailable }; List<Registrar> registrars = new List<Registrar>(); registrars.Add(new Registrar { RegistrarDomain = "101domain.com", Name = "101domain.com", RegisterUrl = "https://domainr.com/liveside.net/register/101domain.com" }); registrars.Add(new Registrar { RegistrarDomain = "dotster.com", Name = "Dotster", RegisterUrl = "https://domainr.com/liveside.net/register/dotster.com" }); SelectedDomainInfo.Registrars = registrars; } else { // Code runs "for real": Connect to service, etc... domainr = new DomainrSharpService(Constants.DomainrAppId); WireMessages(); WireCommands(); } }
private void WireCommands() { PageLoadedCommand = new RelayCommand(() => { if (!isLoaded) { if (App.IsNetworkAvailable) { IsVisible = true; ProgressText = "Filling in the gaps..."; domainr.InfoDownloadCompleted += (s, e) => { if (e.Error == null) { if (e.Result != null) { SelectedDomainInfo = e.Result; isLoaded = true; } } else { App.ShowMessage("Error", e.Error.Message); } IsVisible = false; }; domainr.InfoDownloadAsync(SelectedDomain.Domain); } } }); NavigateToRegistrar = new RelayCommand<Registrar>(reg => { // For analytical purposes, selected domain and chose registrar are logged // This gives an indication on how useful users find domainr List<FlurryWP7SDK.Models.Parameter> args = new List<FlurryWP7SDK.Models.Parameter>(); args.Add(new FlurryWP7SDK.Models.Parameter("Domain", SelectedDomain.Domain)); args.Add(new FlurryWP7SDK.Models.Parameter("Registrar", reg.Name)); args.Add(new FlurryWP7SDK.Models.Parameter("RegistrarDomain", reg.RegistrarDomain)); FlurryWP7SDK.Api.LogEvent("RegistrarTapped", args); NavigateTo(reg.RegisterUrl); }); NavigateToExternal = new RelayCommand<string>(NavigateTo); }