示例#1
0
 private void skydrive_SessionChanged(object sender, Microsoft.Live.Controls.LiveConnectSessionChangedEventArgs e)
 {
     if (e != null && e.Status == LiveConnectSessionStatus.Connected)
     {
         App.ViewModelData.LiveClient = new LiveConnectClient(e.Session);
         UploadBtn.IsEnabled          = true;
     }
     else
     {
         App.ViewModelData.LiveClient = null;
         if (e.Error != null)
         {
             OSHelper.ShowToast(AppResources.TextID31);
         }
     }
 }
示例#2
0
        private async void PrepareFolderSkydrive()
        {
            try
            {
                LiveOperationResult operationResult = await App.ViewModelData.LiveClient.GetAsync("me/skydrive/files?filter=folders,albums");

                var folderData = operationResult.Result as dynamic;
                var folders    = folderData.data as dynamic;
                foreach (dynamic folder in folders)
                {
                    if (folder.name.ToString().Equals(Constant.SKYDRIVE_FOLDER_NAME))
                    {
                        App.ViewModelData.SkydriveFolderID = folder.id.ToString();
                        break;
                    }
                }

                if (string.IsNullOrEmpty(App.ViewModelData.SkydriveFolderID))
                {
                    Dictionary <string, object> skyDriveFolderData = new Dictionary <string, object>();
                    skyDriveFolderData.Add("name", Constant.SKYDRIVE_FOLDER_NAME);
                    LiveOperationResult createFolderResult = await App.ViewModelData.LiveClient.PostAsync("me/skydrive", skyDriveFolderData);

                    var folder = createFolderResult.Result as dynamic;

                    App.ViewModelData.SkydriveFolderID = folder.id.ToString();
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Exception everywhere " + ex.GetType());
                OSHelper.ShowToast(AppResources.TextID32);
            }

            if (!string.IsNullOrEmpty(App.ViewModelData.SkydriveFolderID))
            {
                SetAppBarButtonsEnable(true);
            }

            ProgressIndicator.IsRunning = false;
        }
        //string ParseGoogleResponse(string data)
        //{
        //    var xmlElm = XElement.Parse(data);
        //    var status = (from elm in xmlElm.Descendants() where elm.Name == "status" select elm).FirstOrDefault();
        //    if (status.Value.ToLower() == "ok")
        //    {
        //        var res = (from elm in xmlElm.Descendants() where elm.Name == "formatted_address" select elm).FirstOrDefault();
        //        return res.Value;
        //    }
        //    return null;
        //}

        private async Task <GeoCoordinate> GetCurrentLocation()
        {
            Geolocator geoLocator = new Geolocator()
            {
                DesiredAccuracy = PositionAccuracy.High
            };

            try
            {
                var position = await geoLocator.GetGeopositionAsync(TimeSpan.FromHours(24), TimeSpan.FromSeconds(5));

                return(CoordinateConverter.ConvertGeocoordinate(position.Coordinate));
            }
            catch (Exception) { }

            Dispatcher.BeginInvoke(() =>
            {
                OSHelper.ShowToast(AppResources.TextID18);
            });

            return(null);
        }
示例#4
0
 void saveImageWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     OSHelper.ShowToast(AppResources.TextID19);
 }
        async void locationWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Dispatcher.BeginInvoke(() =>
            {
                LocationIndicator.IsRunning = true;
                TxtBoxLocation.IsEnabled    = false;
                SetScreenButtonsEnabled(false);
            });

            if (NetworkInterface.NetworkInterfaceType == NetworkInterfaceType.None)
            {
                Dispatcher.BeginInvoke(() =>
                {
                    OSHelper.ShowToast(AppResources.TextID17);

                    LocationIndicator.IsRunning = false;
                    TxtBoxLocation.IsEnabled    = true;
                    SetScreenButtonsEnabled(true);
                });
                return;
            }

            var currentPosition = await GetCurrentLocation();

            if (currentPosition != null)
            {
                //string reverseGeocodingQuery = String.Format(Constant.GOOGLE_REVERSE_GEOCODING_URI, currentPosition.Latitude, currentPosition.Longitude);
                //HttpClient client = new HttpClient()
                //{
                //    Timeout = TimeSpan.FromMilliseconds(5000)
                //};
                //HttpRequestMessage req = new HttpRequestMessage()
                //{
                //    RequestUri = new Uri(reverseGeocodingQuery, UriKind.Absolute)
                //};
                //var res = await client.SendAsync(req);
                //string content = await res.Content.ReadAsStringAsync();
                //string address = ParseGoogleResponse(content);

                Dispatcher.BeginInvoke(async() =>
                {
                    ReverseGeocodeQuery reverseGeocodingQuery = new ReverseGeocodeQuery()
                    {
                        GeoCoordinate = currentPosition
                    };
                    var results = await reverseGeocodingQuery.GetMapLocationsAsync();

                    LocationIndicator.IsRunning = false;
                    TxtBoxLocation.IsEnabled    = true;
                    SetScreenButtonsEnabled(true);

                    if (results.Count > 0)
                    {
                        var geoAddress      = results[0].Information.Address;
                        TxtBoxLocation.Text = FormatAddress(geoAddress);
                    }
                });
            }
            else
            {
                Dispatcher.BeginInvoke(() =>
                {
                    LocationIndicator.IsRunning = false;
                    TxtBoxLocation.IsEnabled    = true;
                    SetScreenButtonsEnabled(true);
                });
            }
        }