Example #1
0
        public static string ExtractCode(Uri uri)
        {
            var query = uri.QueryString().ToList();

            var code = query.FirstOrDefault(entry => entry.Key.Equals("code", StringComparison.OrdinalIgnoreCase));

            var error = query.FirstOrDefault(entry => entry.Key.Equals("error", StringComparison.OrdinalIgnoreCase));
            var errorDesc = query.FirstOrDefault(entry => entry.Key.Equals("error_description", StringComparison.OrdinalIgnoreCase));

            if (!string.IsNullOrEmpty(error.Value))
            {
                throw new BexException(error.Value, errorDesc.Value);
            }

            if (string.IsNullOrEmpty(code.Value))
            {
                throw new BexException("NoCode", "No code was found in this url");
            }

            return code.Value;
        }
        private Task ShowEmailComposeAsync(Uri uri)
        {
            return Task.Factory.StartNew(() =>
            {
                var queryString = uri.QueryString();

                new EmailComposeTask()
                {
                    To = string.IsNullOrEmpty(uri.UserInfo) ? queryString.GetValue("to") : uri.UserInfo + "@" + uri.Host,
                    Subject = queryString.GetValue("subject"),
                    Body = queryString.GetValue("body"),
                    Cc = queryString.GetValue("cc"),
                    Bcc = queryString.GetValue("bcc")
                }.Show();
            });
        }
        private Task ShowMarketplaceSearchAsync(Uri uri)
        {
            var queryString = uri.QueryString();

            if (!queryString.ContainsKey("keyword"))
            {
                throw new NotSupportedException("The specified uri is not supported in Windows Phone 7.x");
            }

            return Task.Factory.StartNew(() =>
            {
                new MarketplaceSearchTask()
                {
                    SearchTerms = queryString["keyword"]
                }.Show();
            });
        }
 private Task ShowMarketplaceDetailAsync(Uri uri)
 {
     return Task.Factory.StartNew(() =>
     {
         new MarketplaceDetailTask()
         {
             ContentIdentifier = uri.QueryString().GetValue("appid")
         }.Show();
     });
 }