void GeocodeManagerGeocodeCompleted(object sender, RequestCompletedEventArgs<GeocodeRequestParameters, Geocoding.Dto.GeocodeResult> e)
        {
            string messageBoxText = e.RequestResults.Addresses[0].Title;

            // Warning! Event is fired in non-UI context
            Dispatcher.BeginInvoke(() =>
                MessageBox.Show(messageBoxText));
        }
예제 #2
0
        void MetrocamService_CreateFavoritedPictureCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.CreateFavoritedPictureCompleted -= MetrocamService_CreateFavoritedPictureCompleted;

            toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                "Success!",
                "Picture has been added to your favorites.");

            toastDisplay.Show();
        }
예제 #3
0
        private static void OnRequestCompleted(object s, RequestCompletedEventArgs e)
        {
            //Here, we mark the requests as completed for the previously filtered URLs.
            string url = e.UrlRequest.Url;

            if (AjaxRequests.ContainsKey(url))
            {
                AjaxRequests[url].Complete();
            }
        }
예제 #4
0
        /// <summary>
        /// When receiving a response from Rollbar, log it to the internal NLog log
        /// </summary>
        /// <param name="source"></param>
        /// <param name="args"></param>
        private static void RollbarClientRequestCompleted(object source, RequestCompletedEventArgs args)
        {
            if (args.Result.IsSuccess)
            {
                InternalLogger.Debug("Request was successful: " + args.Result.Message);
                return;
            }

            InternalLogger.Warn("Request failed: " + args.Result);
        }
예제 #5
0
        public void CheckNetLatency()
        {
            Console.WriteLine("Checking .net latency");

            var server = new CassiniDevServer();

            server.StartServer(Environment.CurrentDirectory);

            var ctx = new Client(new Uri(server.NormalizeUrl("/")), new Uri(server.NormalizeUrl("/")), "foo");

            DateTimeOffset            requestRecieved = DateTimeOffset.MinValue;
            RequestCompletedEventArgs requestInfo     = null;

            ctx.RequestCompleted += (i, e) =>
            {
                requestInfo = e;
            };
            server.Server.ProcessRequest += (i, e) =>
            {
                e.Continue       = false;
                e.Response       = LoggedIn;
                e.ResponseStatus = 200;
                requestRecieved  = DateTimeOffset.UtcNow;
            };


            try
            {
                ctx.LogIn(Settings.RpcUserName, Settings.RpcPassword);
            }
            finally
            {
                server.Dispose();
            }

            Console.WriteLine("elapsed   {0}", requestInfo.Info.Watch.ElapsedMilliseconds);

            // #TODO: not sure i like the complete removal of temporal data

            //Console.WriteLine("issued   {0}", requestInfo.Info.Issued.Ticks);
            //Console.WriteLine("recieved {0}", requestRecieved.Ticks);
            //Console.WriteLine("competed {0}", requestInfo.Info.Completed.Ticks);

            //Console.WriteLine("issued to recieved {0}", TimeSpan.FromTicks(requestRecieved.Ticks - requestInfo.Info.Issued.Ticks));
            //Console.WriteLine("recieved to completed {0}", TimeSpan.FromTicks(requestInfo.Info.Completed.Ticks - requestRecieved.Ticks));
            //Console.WriteLine("issued to completed {0}", TimeSpan.FromTicks(requestInfo.Info.Completed.Ticks - requestInfo.Info.Issued.Ticks));



            Assert.IsNotNullOrEmpty(ctx.Session);



            ctx.Dispose();
        }
예제 #6
0
        private void Session_RequestCompleted(object sender, RequestCompletedEventArgs e)
        {
            switch (e.Response.Type)
            {
            case O2GResponseType.GetLastOrderUpdate:
                break;

            case O2GResponseType.MarginRequirementsResponse:
                break;

            case O2GResponseType.CommandResponse:
                break;

            case O2GResponseType.GetSystemProperties:
                break;

            case O2GResponseType.CreateOrderResponse:
                break;

            case O2GResponseType.GetMessages:
                break;

            case O2GResponseType.GetClosedTrades:
                break;

            case O2GResponseType.GetTrades:
                break;

            case O2GResponseType.GetOrders:
                break;

            case O2GResponseType.GetOffers:
                break;

            case O2GResponseType.GetAccounts:
                var accountsReader = _factory.createAccountsTableReader(e.Response);
                //_accountRow = GetAccountRow(accountsReader);
                _syncResponseEvent.Set();
                break;

            case O2GResponseType.MarketDataSnapshot:
                var readerFactory = _session.getResponseReaderFactory();
                _marketDataSnapshotResponse = _factory.createMarketDataSnapshotReader(e.Response);
                _syncHistoryEvent.Set();
                break;

            case O2GResponseType.TablesUpdates:
                _session.TablesUpdates += Session_TablesUpdates;
                break;

            case O2GResponseType.ResponseUnknown:
                Stop();
                break;
            }
        }
예제 #7
0
        void MetrocamService_UpdateUserCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.UpdateUserCompleted -= MetrocamService_UpdateUserCompleted;
            GlobalLoading.Instance.IsLoading         = false;

            toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                "Success!",
                "Your profile picture has been updated.");

            toastDisplay.Show();
        }
예제 #8
0
        private static void HttpServer_OnRequestCompleted(object sender, RequestCompletedEventArgs e)
        {
            if (!e.Success)
            {
                Console.WriteLine($"Request Failed: {e.Exception.Message}");
                return;
            }

            Interlocked.Increment(ref NumberOfHandledRequests);

            HttpServerPerf.RequestCompleted(e.RequestDurationTickCount);
        }
예제 #9
0
        void MetrocamService_CreateUserConnectedAccountCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.CreateUserConnectedAccountCompleted -= MetrocamService_CreateUserConnectedAccountCompleted;

            Dispatcher.BeginInvoke(() =>
            {
                if (NavigationService.CanGoBack)
                {
                    Settings.twitterAuth.Value = true;
                    MessageBox.Show("You've successfully authorized Metrocam with your Twitter accout!");
                    NavigationService.GoBack();
                }
            });
        }
예제 #10
0
        void MetrocamService_FetchPopularNewsFeedCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.FetchPopularNewsFeedCompleted -= MetrocamService_FetchPopularNewsFeedCompleted;

            PopularPictures.Clear();

            foreach (PictureInfo p in e.Data as List <PictureInfo> )
            {
                if (PopularPictures.Count == 24)
                {
                    continue;
                }

                PopularPictures.Add(p);
            }
        }
예제 #11
0
        void MetrocamService_CreateFlaggedPictureCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.CreateFlaggedPictureCompleted -= MetrocamService_CreateFlaggedPictureCompleted;
            if (GlobalLoading.Instance.IsLoading)
            {
                GlobalLoading.Instance.IsLoading = false;
            }

            toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                "Success!",
                "Picture has been flagged for review.");

            toastDisplay.Show();

            App.ChangedFlaggedStatus[CurrentPicture.ID] = true;
            doingWork = false;
        }
예제 #12
0
        void MetrocamService_FetchNewsFeedCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.FetchNewsFeedCompleted -= MetrocamService_FetchNewsFeedCompleted;
            App.RecentPictures.Clear();

            foreach (PictureInfo p in e.Data as List <PictureInfo> )
            {
                if (App.RecentPictures.Count == 10)
                {
                    break;
                }

                // changes to local time
                p.FriendlyCreatedDate = TimeZoneInfo.ConvertTime(p.FriendlyCreatedDate, TimeZoneInfo.Local);

                App.RecentPictures.Add(p);
            }
        }
예제 #13
0
        private void client_AuthenticateCompleted(object sender, RequestCompletedEventArgs e)
        {
            // unregister previous event handler
            App.MetrocamService.AuthenticateCompleted -= client_AuthenticateCompleted;

            WriteableBitmap bitmap = new WriteableBitmap((BitmapSource)EditPicture.editedPicture.Source);

            var width  = bitmap.PixelWidth * 2;
            var height = bitmap.PixelHeight * 2;

            //var resultPixels = effect.Process(bitmap.Pixels, width, height);

            ms = new MemoryStream();
            bitmap.SaveJpeg(ms, width, height, 0, 100);
            ms.Seek(0, SeekOrigin.Begin);

            /******
             *
             *  save original photo to phone
             *
             */
            long   timestamp        = DateTime.Now.ToFileTime();
            String originalFilename = "MetrocamOriginal_" + timestamp.ToString() + ".jpg";

            var myStore = IsolatedStorageFile.GetUserStoreForApplication();

            var lib = new MediaLibrary();

            if (Settings.saveOriginal.Value && MainPage.tookPhoto)
            {
                IsolatedStorageFileStream myFileStream = myStore.CreateFile(originalFilename);
                WriteableBitmap           w            = new WriteableBitmap((BitmapSource)MainPage.bmp);
                w.SaveJpeg(myFileStream, w.PixelWidth, w.PixelHeight, 0, 100);
                myFileStream.Close();

                myFileStream = myStore.OpenFile(originalFilename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                lib.SavePictureToCameraRoll(originalFilename, myFileStream);
            }


            // upload the image
            App.MetrocamService.UploadPictureCompleted += new RequestCompletedEventHandler(client_UploadPictureCompleted);
            App.MetrocamService.UploadPicture(ms);
        }
예제 #14
0
        void MetrocamService_FetchNewsFeedCompleted(object sender, RequestCompletedEventArgs e)
        {
            GlobalLoading.Instance.Text = "";
            endRec = DateTime.Now;
            App.MetrocamService.FetchNewsFeedCompleted -= MetrocamService_FetchNewsFeedCompleted;
            App.RecentPictures.Clear();
            App.ContinuedRecentPictures.Clear();

            PictureInfo firstPicture = null;

            foreach (PictureInfo p in e.Data as List <PictureInfo> )
            {
                // changes to local time
                p.FriendlyCreatedDate = TimeZoneInfo.ConvertTime(p.FriendlyCreatedDate, TimeZoneInfo.Local);

                if (App.RecentPictures.Count < 5)
                {
                    if (App.RecentPictures.Count == 0)
                    {
                        firstPicture = p;
                    }
                    // Put only 10 PictureInfo objects in RecentPictures
                    App.RecentPictures.Add(p);
                }
                else
                {
                    // Put the rest of the PictureInfo objects into ContinuedRecentPictures
                    App.ContinuedRecentPictures.Add(p);
                }
            }

            if (recentPictures.ItemsSource == null)
            {
                Dispatcher.BeginInvoke(() =>
                                       recentPictures.DataContext = App.RecentPictures);
            }

            if (GlobalLoading.Instance.IsLoading == true)
            {
                GlobalLoading.Instance.IsLoading = false;
            }
        }
예제 #15
0
        void MetrocamService_DeleteFavoritedPictureCompleted(object sender, RequestCompletedEventArgs e)
        {
            doingWork = false;
            GlobalLoading.Instance.IsLoading = false;

            toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                "Success!",
                "Picture has been removed from your favorites.");
            toastDisplay.Show();

            ApplicationBar.Buttons.RemoveAt(2);
            ApplicationBarIconButton favorite = new ApplicationBarIconButton(new Uri("Images/appbar.heart.png", UriKind.Relative));

            favorite.Text   = "favorite";
            favorite.Click += new EventHandler(Favorite_Click);
            ApplicationBar.Buttons.Add(favorite);


            App.MetrocamService.DeleteFavoritedPictureCompleted -= MetrocamService_DeleteFavoritedPictureCompleted;
        }
        void MetrocamService_AuthenticateCompleted(object sender, RequestCompletedEventArgs e)
        {
            // Unsubscribe
            App.MetrocamService.AuthenticateCompleted -= new RequestCompletedEventHandler(MetrocamService_AuthenticateCompleted);

            GlobalLoading.Instance.IsLoading = false;

            // Save UserInfo object from WebClient
            UserInfo obtainedUser = App.MetrocamService.CurrentUser;

            // Load user specific settings
            Settings.getUserSpecificSettings(obtainedUser.Username);

            // Store into isolated storage
            Settings.isLoggedIn.Value = true;
            Settings.username.Value   = currentUser.Username;
            Settings.password.Value   = this.PasswordInput.Password;    // As of now, currentUser.Password returns a hashed password.

            App.isFromLandingPage = true;
            NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
        }
예제 #17
0
        void MetrocamService_DeletePictureCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.DeletePictureCompleted -= MetrocamService_DeletePictureCompleted;
            GlobalLoading.Instance.IsLoading            = false;

            var PictureToDelete = (from pic in App.PopularPictures where pic.ID.Equals(NavigationContext.QueryString["id"]) select pic).FirstOrDefault <PictureInfo>();

            if (PictureToDelete != null)
            {
                App.PopularPictures.Remove(PictureToDelete);
            }

            PictureToDelete = (from pic in App.RecentPictures where pic.ID.Equals(NavigationContext.QueryString["id"]) select pic).FirstOrDefault <PictureInfo>();
            if (PictureToDelete != null)
            {
                App.RecentPictures.Remove(PictureToDelete);
            }

            PictureToDelete = (from pic in App.UserPictures where pic.ID.Equals(NavigationContext.QueryString["id"]) select pic).FirstOrDefault <PictureInfo>();
            if (PictureToDelete != null)
            {
                App.UserPictures.Remove(PictureToDelete);
            }

            PictureToDelete = (from pic in App.FavoritedUserPictures where pic.ID.Equals(NavigationContext.QueryString["id"]) select pic).FirstOrDefault <PictureInfo>();
            if (PictureToDelete != null)
            {
                App.FavoritedUserPictures.Remove(PictureToDelete);
            }


            //App.pictureIsDeleted = true;

            if (NavigationService.CanGoBack)
            {
                NavigationService.GoBack();
            }
        }
예제 #18
0
        private void MetrocamService_AuthenticateCompleted_Login(object sender, RequestCompletedEventArgs e)
        {
            this.timer.Stop();
            App.MetrocamService.AuthenticateCompleted -= MetrocamService_AuthenticateCompleted_Login;
            if (GlobalLoading.Instance.IsLoading)
            {
                GlobalLoading.Instance.IsLoading = false;
            }

            UnauthorizedAccessException err = e.Data as UnauthorizedAccessException;

            if (err != null)
            {
                toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                    "Oops!",
                    "The credentials you provided are invalid.",
                    3000);
                toastDisplay.Show();
                return;
            }

            //FetchRecentPictures();

            // Obtain UserInfo object from web service
            UserInfo currentUser = App.MetrocamService.CurrentUser;

            // Load user specific settings
            Settings.getUserSpecificSettings(currentUser.Username);

            // Store into isolated storage
            Settings.isLoggedIn.Value = true;
            Settings.username.Value   = currentUser.Username;
            Settings.password.Value   = this.passwordInput.Password;    // As of now, currentUser.Password returns a hashed password.

            App.isFromLandingPage = true;
            NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
        }
예제 #19
0
        void DownLoadCompleted(object sender, RequestCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                Stream stm = (Stream)e.UserState;
                using (BinaryReader reader = new BinaryReader(e.Response))
                {
                    var buffer = new byte[2048];
                    int bytesRead;

                    do
                    {
                        bytesRead = reader.Read(buffer, 0, buffer.Length);
                        stm.Write(buffer, 0, bytesRead);
                    } while (bytesRead > 0);
                }

#if !SILVERLIGHT
                Application.Current.Dispatcher.BeginInvoke(new Action(() => stm.Close()));
#else
                Deployment.Current.Dispatcher.BeginInvoke(() => stm.Close());
#endif
            }
        }
        void MetrocamService_CreateFavoritedPictureCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.CreateFavoritedPictureCompleted -= MetrocamService_CreateFavoritedPictureCompleted;

            toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                "Success!",
                "Picture has been added to your favorites.");

            toastDisplay.Show();
        }
        void MetrocamService_AuthenticateCompleted(object sender, RequestCompletedEventArgs e)
        {
            // Unsubcribe
            App.MetrocamService.AuthenticateCompleted -= new RequestCompletedEventHandler(MetrocamService_AuthenticateCompleted);
            Settings.getUserSpecificSettings(App.MetrocamService.CurrentUser.ID);

            if ((App.isFromAppLaunch || App.isFromLandingPage) && App.MetrocamService.CurrentUser != null)
            {
                FetchPopularPictures();
                FetchRecentPictures();

                DateTime start = DateTime.Now;
                DateTime end = DateTime.Now;

                while ((end.Ticks - start.Ticks) < 70000)
                {
                    end = DateTime.Now;
                }

                GetUserConnectedAccounts();
            }

            if (isRefreshingRecent)
            {
                FetchRecentPictures();
            }

            // Reset back to false
            App.isFromAppLaunch = false;
            App.isFromAppActivate = false;
            App.isFromLandingPage = false;
            isRefreshingRecent = false;
        }
        private void client_CreatePictureCompleted(object sender, RequestCompletedEventArgs e)
        {
            if (GlobalLoading.Instance.IsLoading)
                GlobalLoading.Instance.IsLoading = false;

            isUploading = false;

            MobileClientLibrary.Models.Picture data = e.Data as MobileClientLibrary.Models.Picture;

            // unregister previous event handler
            App.MetrocamService.CreatePictureCompleted -= client_CreatePictureCompleted;

            if (twitterSwitch.IsChecked == true)
            {
                TwitterService t = new TwitterService(TwitterSettings.ConsumerKey, TwitterSettings.ConsumerKeySecret, MainPage.TwitterToken, MainPage.TwitterSecret);
                t.SendTweet(data.Caption + " " + "http://metrocam.cloudapp.net/p/" + data.ID, (status, response) =>
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                         // YAY
                    }
                });

            //    var _credentials = new OAuthCredentials
            //    {
            //        Type = OAuthType.AccessToken,
            //        SignatureMethod = OAuthSignatureMethod.HmacSha1,
            //        ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
            //        ConsumerKey = TwitterSettings.ConsumerKey,
            //        ConsumerSecret = TwitterSettings.ConsumerKeySecret,
            //        Token = MainPage.TwitterToken,
            //        TokenSecret = MainPage.TwitterSecret,
            //        Version = TwitterSettings.OAuthVersion,
            //    };

            //    var client = new RestClient
            //    {
            //        Authority = "https://upload.twitter.com",
            //        HasElevatedPermissions = true
            //    };

            //    var requestPath = "/1/statuses/update_with_media.xml";
            //    var request = new RestRequest
            //    {
            //        Credentials = _credentials,
            //        Path = requestPath,
            //        Method = WebMethod.Post
            //    };

            //    request.AddParameter("status", data.Caption);
            //    request.AddFile("media[]", "TweetPhoto.jpg", ms, "image/jpeg");
            //    client.BeginRequest(request, new RestCallback(PhotoTweetCompleted));
            }

            Dispatcher.BeginInvoke(() =>
            {
                // This flag is needed for MainPage to clear back stack
                App.isFromUploadPage = true;

                NavigationService.Navigate(new Uri("/MainPage.xaml?from=upload", UriKind.Relative));
            });
        }
        private void client_AuthenticateCompleted(object sender, RequestCompletedEventArgs e)
        {
            // unregister previous event handler
            App.MetrocamService.AuthenticateCompleted -= client_AuthenticateCompleted;

            App.MetrocamService.CreateUserConnectedAccountCompleted += new RequestCompletedEventHandler(MetrocamService_CreateUserConnectedAccountCompleted);
            App.MetrocamService.CreateUserConnectedAccount(uca);
        }
        void wc_RequestCompleted(object sender, RequestCompletedEventArgs e)
        {
            WebClientHelper wc = sender as WebClientHelper;
            ContentType = wc.ContentType;

             dispatcher.BeginInvoke(new Action(()=>
                {
                    GetImageSourceCompletedEventArgs eventArgs;

                    if (e.Error != null)
                    {
                        eventArgs = new GetImageSourceCompletedEventArgs(e.Error, false, this);
                    }
                    else
                    {
                        try
                        {
                            eventArgs = CreateBitmapFromStream(e.Response);
                        }
                        finally
                        {
                            e.Response.Close();
                        }
                    }

                    GetImageSourceAsyncCallback callback = (GetImageSourceAsyncCallback)e.UserState;
                    callback(this, eventArgs);

                }));
        }
        void MetrocamService_UpdateUserCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.UpdateUserCompleted -= MetrocamService_UpdateUserCompleted;

            if (GlobalLoading.Instance.IsLoading == true)
                GlobalLoading.Instance.IsLoading = false;

            toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                "Success!",
                "Your profile picture has been updated.");

            toastDisplay.Show();
        }
        void MetrocamService_FetchUserConnectedAccountsByUserIDCompleted(object sender, RequestCompletedEventArgs e)
        {
            List<UserConnectedAccount> UCAs = e.Data as List<UserConnectedAccount>;

            foreach (UserConnectedAccount uca in UCAs)
            {
                if (uca.AccountName.Equals("Twitter"))
                {
                    TwitterSecret = uca.ClientSecret;
                    TwitterToken = uca.ClientToken;

                    TwitterService twitter = new TwitterService(TwitterSettings.ConsumerKey, TwitterSettings.ConsumerKeySecret);
                    twitter.AuthenticateWith(TwitterToken, TwitterSecret);
                    twitter.VerifyCredentials((user, response) =>
                    {
                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            // yay! user hasn't revoked our access
                            Settings.twitterAuth.Value = true;
                        }
                        else
                        {
                            Settings.twitterAuth.Value = false;
                            Settings.twitterDefault.Value = false;

                            // Delete this UCA since it's no longer valid
                            //App.MetrocamService.DeleteUserConnectedAccountCompleted += new RequestCompletedEventHandler(MetrocamService_DeleteUserConnectedAccountCompleted);
                            //App.MetrocamService.DeleteUserConnectedAccount();
                        }
                    });
                }
            }
        }
        void MetrocamService_FetchPopularNewsFeedCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.FetchPopularNewsFeedCompleted -= MetrocamService_FetchPopularNewsFeedCompleted;

            PopularPictures.Clear();

            foreach (PictureInfo p in e.Data as List<PictureInfo>)
            {
                if (PopularPictures.Count == 24)
                    continue;

                PopularPictures.Add(p);
            }
        }
        void MetrocamService_AuthenticateCompleted(object sender, RequestCompletedEventArgs e)
        {
            // Unsubscribe
            App.MetrocamService.AuthenticateCompleted -= new RequestCompletedEventHandler(MetrocamService_AuthenticateCompleted);

            GlobalLoading.Instance.IsLoading = false;

            // Save UserInfo object from WebClient
            UserInfo obtainedUser = App.MetrocamService.CurrentUser;

            // Load user specific settings
            Settings.getUserSpecificSettings(obtainedUser.Username);

            // Store into isolated storage
            Settings.isLoggedIn.Value = true;
            Settings.username.Value = currentUser.Username;
            Settings.password.Value = this.PasswordInput.Password;      // As of now, currentUser.Password returns a hashed password.

            App.isFromLandingPage = true;
            NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
        }
        private void MetrocamService_CreateUserCompleted(object sender, RequestCompletedEventArgs e)
        {
            // Unsubscribe
            App.MetrocamService.CreateUserCompleted -= new MobileClientLibrary.RequestCompletedEventHandler(MetrocamService_CreateUserCompleted);

            UnauthorizedAccessException err = e.Data as UnauthorizedAccessException;

            if (err != null)
            {
                if (GlobalLoading.Instance.IsLoading)
                    GlobalLoading.Instance.IsLoading = false;
                // There was an error with CreateUser in the webservice
                toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                    "Signup Failure",
                    "This Username and/or Email is already being registered to another account.",
                    3000);
                toastDisplay.Show();
                return;
            }

            // Now we authenticate using the username and password
            App.MetrocamService.AuthenticateCompleted += new RequestCompletedEventHandler(MetrocamService_AuthenticateCompleted);

            // Calls Authenticate to obtain UserInfo object
            App.MetrocamService.Authenticate(this.UsernameInput.Text, this.PasswordInput.Password);
        }
예제 #30
0
 void MetrocamService_FetchFavoritedPictureByPictureIDCompleted(object sender, RequestCompletedEventArgs e)
 {
     doingWork = false;
     App.MetrocamService.FetchFavoritedPictureByPictureIDCompleted -= MetrocamService_FetchFavoritedPictureByPictureIDCompleted;
     f = e.Data as FavoritedPicture;
 }
예제 #31
0
        void MetrocamService_FetchUserConnectedAccountsByUserIDCompleted(object sender, RequestCompletedEventArgs e)
        {
            List <UserConnectedAccount> UCAs = e.Data as List <UserConnectedAccount>;

            foreach (UserConnectedAccount uca in UCAs)
            {
                if (uca.AccountName.Equals("Twitter"))
                {
                    TwitterSecret = uca.ClientSecret;
                    TwitterToken  = uca.ClientToken;

                    TwitterService twitter = new TwitterService(TwitterSettings.ConsumerKey, TwitterSettings.ConsumerKeySecret);
                    twitter.AuthenticateWith(TwitterToken, TwitterSecret);
                    twitter.VerifyCredentials((user, response) =>
                    {
                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            // yay! user hasn't revoked our access
                            Settings.twitterAuth.Value = true;
                        }
                        else
                        {
                            Settings.twitterAuth.Value    = false;
                            Settings.twitterDefault.Value = false;

                            // Delete this UCA since it's no longer valid
                            //App.MetrocamService.DeleteUserConnectedAccountCompleted += new RequestCompletedEventHandler(MetrocamService_DeleteUserConnectedAccountCompleted);
                            //App.MetrocamService.DeleteUserConnectedAccount();
                        }
                    });
                }
            }
        }
        private void client_AuthenticateCompleted(object sender, RequestCompletedEventArgs e)
        {
            // unregister previous event handler
            App.MetrocamService.AuthenticateCompleted -= client_AuthenticateCompleted;

            WriteableBitmap bitmap = new WriteableBitmap((BitmapSource)EditPicture.editedPicture.Source);

            var width = bitmap.PixelWidth * 2;
            var height = bitmap.PixelHeight * 2;
            //var resultPixels = effect.Process(bitmap.Pixels, width, height);

            ms = new MemoryStream();
            bitmap.SaveJpeg(ms, width, height, 0, 100);
            ms.Seek(0, SeekOrigin.Begin);

            /******
             *
             *  save original photo to phone
             *
             */
            long timestamp = DateTime.Now.ToFileTime();
            String originalFilename = "MetrocamOriginal_" + timestamp.ToString() + ".jpg";

            var myStore = IsolatedStorageFile.GetUserStoreForApplication();

            var lib = new MediaLibrary();

            if (Settings.saveOriginal.Value && MainPage.tookPhoto)
            {
                IsolatedStorageFileStream myFileStream = myStore.CreateFile(originalFilename);
                WriteableBitmap w = new WriteableBitmap((BitmapSource)MainPage.bmp);
                w.SaveJpeg(myFileStream, w.PixelWidth, w.PixelHeight, 0, 100);
                myFileStream.Close();

                myFileStream = myStore.OpenFile(originalFilename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                lib.SavePictureToCameraRoll(originalFilename, myFileStream);
            }

            // upload the image
            App.MetrocamService.UploadPictureCompleted += new RequestCompletedEventHandler(client_UploadPictureCompleted);
            App.MetrocamService.UploadPicture(ms);
        }
 void MetrocamService_DeleteUserConnectedAccountCompleted(object sender, RequestCompletedEventArgs e)
 {
     throw new NotImplementedException();
 }
 void SearchLayer_DataRequestCompleted(object sender, RequestCompletedEventArgs e)
 {
     mapControl1.ZoomToFitLayerItems();
 }
        void MetrocamService_FetchNewsFeedCompleted(object sender, RequestCompletedEventArgs e)
        {
            GlobalLoading.Instance.Text = "";
            endRec = DateTime.Now;
            App.MetrocamService.FetchNewsFeedCompleted -= MetrocamService_FetchNewsFeedCompleted;
            App.RecentPictures.Clear();
            App.ContinuedRecentPictures.Clear();

            PictureInfo firstPicture = null;

            foreach (PictureInfo p in e.Data as List<PictureInfo>)
            {
                // changes to local time
                p.FriendlyCreatedDate = TimeZoneInfo.ConvertTime(p.FriendlyCreatedDate, TimeZoneInfo.Local);

                if (App.RecentPictures.Count < 5)
                {
                    if (App.RecentPictures.Count == 0)
                    {
                        firstPicture = p;
                    }
                    // Put only 10 PictureInfo objects in RecentPictures
                    App.RecentPictures.Add(p);
                }
                else
                {
                    // Put the rest of the PictureInfo objects into ContinuedRecentPictures
                    App.ContinuedRecentPictures.Add(p);
                }
            }

            if (recentPictures.ItemsSource == null)
            {
                Dispatcher.BeginInvoke(() =>
                        recentPictures.DataContext = App.RecentPictures);
            }

            if (GlobalLoading.Instance.IsLoading == true)
                GlobalLoading.Instance.IsLoading = false;
        }
        void MetrocamService_UpdateUserCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.UpdateUserCompleted -= MetrocamService_UpdateUserCompleted;
            GlobalLoading.Instance.IsLoading = false;

            App.isFromEditProfile = true;

            NavigationService.GoBack();
        }
        void MetrocamService_FetchUserFavoritedPicturesCompleted(object sender, RequestCompletedEventArgs e)
        {
            GlobalLoading.Instance.Text = "";
            App.MetrocamService.FetchUserFavoritedPicturesCompleted -= MetrocamService_FetchUserFavoritedPicturesCompleted;
            App.FavoritedUserPictures.Clear();

            Dispatcher.BeginInvoke(() =>
                        FavoritePictures.DataContext = App.FavoritedUserPictures);

            foreach (PictureInfo p in e.Data as List<PictureInfo>)
            {
                // changes to local time
                p.FriendlyCreatedDate = TimeZoneInfo.ConvertTime(p.FriendlyCreatedDate, TimeZoneInfo.Local);

                App.FavoritedUserPictures.Add(p);
            }

            if (App.FavoritedUserPictures.Count == 0)
                // Set loading message to visible if there are not favorited pictures
                this.FavoritesLoadingMessage.Visibility = Visibility.Visible;
            else
            {
                this.FavoritesLoadingMessage.Visibility = Visibility.Collapsed;
            }

            if (GlobalLoading.Instance.IsLoading == true)
                GlobalLoading.Instance.IsLoading = false;
        }
        private void MetrocamService_AuthenticateCompleted_Login(object sender, RequestCompletedEventArgs e)
        {
            this.timer.Stop();
            App.MetrocamService.AuthenticateCompleted -= MetrocamService_AuthenticateCompleted_Login;
            if (GlobalLoading.Instance.IsLoading)
                GlobalLoading.Instance.IsLoading = false;

            UnauthorizedAccessException err = e.Data as UnauthorizedAccessException;

            if (err != null)
            {
                toastDisplay = GlobalToastPrompt.CreateToastPrompt(
                    "Oops!",
                    "The credentials you provided are invalid.",
                    3000);
                toastDisplay.Show();
                return;
            }

            //FetchRecentPictures();

            // Obtain UserInfo object from web service
            UserInfo currentUser = App.MetrocamService.CurrentUser;

            // Load user specific settings
            Settings.getUserSpecificSettings(currentUser.Username);

            // Store into isolated storage
            Settings.isLoggedIn.Value = true;
            Settings.username.Value = currentUser.Username;
            Settings.password.Value = this.passwordInput.Password;      // As of now, currentUser.Password returns a hashed password.

            App.isFromLandingPage = true;
            NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
        }
예제 #39
0
 private static void Client_RequestCompleted(object sender, RequestCompletedEventArgs e)
 {
     LogCompletedRequest(e.Response);
 }
        void MetrocamService_FetchNewsFeedCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.FetchNewsFeedCompleted -= MetrocamService_FetchNewsFeedCompleted;
            App.RecentPictures.Clear();

            foreach (PictureInfo p in e.Data as List<PictureInfo>)
            {
                if (App.RecentPictures.Count == 10)
                    break;

                // changes to local time
                p.FriendlyCreatedDate = TimeZoneInfo.ConvertTime(p.FriendlyCreatedDate, TimeZoneInfo.Local);

                App.RecentPictures.Add(p);
            }
        }
        void MetrocamService_CreateUserConnectedAccountCompleted(object sender, RequestCompletedEventArgs e)
        {
            App.MetrocamService.CreateUserConnectedAccountCompleted -= MetrocamService_CreateUserConnectedAccountCompleted;

            Dispatcher.BeginInvoke(() =>
            {
                if (NavigationService.CanGoBack)
                {
                    Settings.twitterAuth.Value = true;
                    MessageBox.Show("You've successfully authorized Metrocam with your Twitter accout!");
                    NavigationService.GoBack();
                }
            });
        }
예제 #42
0
 private void OnRequestCompleted(object sender, RequestCompletedEventArgs e)
 {
     this.ProcessResponse(e.Response);
 }
예제 #43
0
 void MetrocamService_DeleteUserConnectedAccountCompleted(object sender, RequestCompletedEventArgs e)
 {
     throw new NotImplementedException();
 }
        private void client_UploadPictureCompleted(object sender, RequestCompletedEventArgs e)
        {
            // unregister previous event handler
            App.MetrocamService.UploadPictureCompleted -= client_UploadPictureCompleted;

            // extract response
            PictureURL result = e.Data as PictureURL;

            // create new picture
            MobileClientLibrary.Models.Picture data = new MobileClientLibrary.Models.Picture();

            Dispatcher.BeginInvoke(() =>
            {
                data.Caption = this.captionBox.Text;

                if (Settings.locationService.Value)
                {
                    data.Latitude = Convert.ToDecimal(MainPage.lat);
                    data.Longitude = Convert.ToDecimal(MainPage.lng);
                }
                else
                {
                    data.Latitude = Convert.ToDecimal(0.00);
                    data.Longitude = Convert.ToDecimal(0.00);
                }

                data.LargeURL = result.LargeURL;
                data.MediumURL = result.MediumURL;
                data.SmallURL = result.SmallURL;

                // upload the picture object
                App.MetrocamService.CreatePictureCompleted += new RequestCompletedEventHandler(client_CreatePictureCompleted);
                App.MetrocamService.CreatePicture(data);
            });
        }
 void OnDataRequestCompleted(object sender, RequestCompletedEventArgs e)
 {
     mapControl.ZoomToFitLayerItems(0.4);
 }
예제 #46
0
        private void client_CreatePictureCompleted(object sender, RequestCompletedEventArgs e)
        {
            if (GlobalLoading.Instance.IsLoading)
            {
                GlobalLoading.Instance.IsLoading = false;
            }

            isUploading = false;

            MobileClientLibrary.Models.Picture data = e.Data as MobileClientLibrary.Models.Picture;

            // unregister previous event handler
            App.MetrocamService.CreatePictureCompleted -= client_CreatePictureCompleted;

            if (twitterSwitch.IsChecked == true)
            {
                TwitterService t = new TwitterService(TwitterSettings.ConsumerKey, TwitterSettings.ConsumerKeySecret, MainPage.TwitterToken, MainPage.TwitterSecret);
                t.SendTweet(data.Caption + " " + "http://metrocam.cloudapp.net/p/" + data.ID, (status, response) =>
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        // YAY
                    }
                });

                //    var _credentials = new OAuthCredentials
                //    {
                //        Type = OAuthType.AccessToken,
                //        SignatureMethod = OAuthSignatureMethod.HmacSha1,
                //        ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
                //        ConsumerKey = TwitterSettings.ConsumerKey,
                //        ConsumerSecret = TwitterSettings.ConsumerKeySecret,
                //        Token = MainPage.TwitterToken,
                //        TokenSecret = MainPage.TwitterSecret,
                //        Version = TwitterSettings.OAuthVersion,
                //    };

                //    var client = new RestClient
                //    {
                //        Authority = "https://upload.twitter.com",
                //        HasElevatedPermissions = true
                //    };

                //    var requestPath = "/1/statuses/update_with_media.xml";
                //    var request = new RestRequest
                //    {
                //        Credentials = _credentials,
                //        Path = requestPath,
                //        Method = WebMethod.Post
                //    };

                //    request.AddParameter("status", data.Caption);
                //    request.AddFile("media[]", "TweetPhoto.jpg", ms, "image/jpeg");
                //    client.BeginRequest(request, new RestCallback(PhotoTweetCompleted));
            }

            Dispatcher.BeginInvoke(() =>
            {
                // This flag is needed for MainPage to clear back stack
                App.isFromUploadPage = true;

                NavigationService.Navigate(new Uri("/MainPage.xaml?from=upload", UriKind.Relative));
            });
        }