Exemplo n.º 1
0
        void TrackGetWeatherEvent()
        {
            var eventDictionaryHockeyApp = new Dictionary <string, string>
            {
                { "Use GPS Enabled", UseGPS.ToString() }
            };

            try
            {
                if (!Temp.Contains(_errorMessage))
                {
                    var locationCityName = UseGPS
                                                ? Condition?.Substring(0, Condition.IndexOf(":", StringComparison.Ordinal))
                                                                        : Location;

                    eventDictionaryHockeyApp.Add("Location", locationCityName);
                }
            }
            catch (Exception ex)
            {
                HockeyappHelpers.Report(ex);
            }
            finally
            {
                HockeyappHelpers.TrackEvent("Weather Button Tapped", eventDictionaryHockeyApp, null);
            }
        }
Exemplo n.º 2
0
        private async Task ExecuteGetWeatherCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;
            try
            {
                WeatherRoot weatherRoot = null;
                var         units       = IsImperial ? Units.Imperial : Units.Metric;


                if (UseGPS)
                {
                    var gps = await CrossGeolocator.Current.GetPositionAsync(10000);

                    weatherRoot = await WeatherService.GetWeather(gps.Latitude, gps.Longitude, units);
                }
                else
                {
                    //Get weather by city
                    weatherRoot = await WeatherService.GetWeather(Location.Trim(), units);
                }


                //Get forecast based on cityId
                Forecast = await WeatherService.GetForecast(weatherRoot.CityId, units);

                var unit = IsImperial ? "F" : "C";
                Temp      = $"Temp: {weatherRoot?.MainWeather?.Temperature ?? 0}°{unit}";
                Condition = $"{weatherRoot?.Name}: {weatherRoot?.Weather?[0]?.Description ?? string.Empty}";
                CrossTextToSpeech.Current.Speak(Temp + " " + Condition);
            }
            catch (Exception ex)
            {
                Temp = _errorMessage;
                HockeyappHelpers.Report(ex);
            }
            finally
            {
                IsBusy = false;
                TrackGetWeatherEvent();
            }
        }
Exemplo n.º 3
0
        public async Task <WeatherRoot> GetWeather(string city, Units units = Units.Imperial)
        {
            try
            {
                var arguments = new Dictionary <string, string>
                {
                    { ("city"), ($"{city}") }
                };

                var res = await MobileService.InvokeApiAsync <WeatherRoot>("getWeather/city", HttpMethod.Get, arguments);

                return(res);
            }
            catch (Exception e)
            {
                HockeyappHelpers.Report(e);
                return(null);
            }
        }
Exemplo n.º 4
0
        public async Task <WeatherRoot> GetWeather(double latitude, double longitude, Units units = Units.Imperial)
        {
            try
            {
                var arguments = new Dictionary <string, string>
                {
                    { ("latitude"), ($"{latitude}") },
                    { ("longitude"), ($"{longitude}") }
                };

                var res = await MobileService.InvokeApiAsync <WeatherRoot>("getWeather/location", HttpMethod.Get, arguments);

                return(res);
            }
            catch (Exception e)
            {
                HockeyappHelpers.Report(e);
                return(null);
            }
        }
Exemplo n.º 5
0
        static async Task <T> GetDataObjectFromAPI <T>(string apiUrl)
        {
            try
            {
                using (var stream = await _client.GetStreamAsync(apiUrl).ConfigureAwait(false))
                    using (var reader = new StreamReader(stream))
                        using (var json = new JsonTextReader(reader))
                        {
                            if (json == null)
                            {
                                return(default(T));
                            }

                            return(await Task.Run(() => _serializer.Deserialize <T>(json)));
                        }
            }
            catch (Exception e)
            {
                HockeyappHelpers.Report(e);
                return(default(T));
            }
        }
Exemplo n.º 6
0
        static async Task <T> GetDataObjectFromAPI <T>(string apiUrl)
        {
            return(await Task.Run(async() =>
            {
                try
                {
                    var json = await Client.GetStringAsync(apiUrl);

                    if (string.IsNullOrWhiteSpace(json))
                    {
                        return default(T);
                    }

                    return DeserializeObject <T>(json);
                }
                catch (Exception e)
                {
                    HockeyappHelpers.Report(e);
                    return default(T);
                }
            }));
        }
Exemplo n.º 7
0
        public async Task <WeatherForecastRoot> GetForecast(int id, Units units = Units.Imperial)
        {
            return(await Task.Run(async() =>
            {
                try
                {
                    var arguments = new Dictionary <string, string>
                    {
                        { ("id"), ($"{id}") },
                        { ("numDays"), ("16") }
                    };

                    var res = await MobileService.InvokeApiAsync <WeatherForecastRoot>("getWeather/forecast", HttpMethod.Get, arguments);

                    return res;
                }
                catch (Exception e)
                {
                    HockeyappHelpers.Report(e);
                    return null;
                }
            }));
        }
Exemplo n.º 8
0
 protected override void OnAppearing()
 {
     base.OnAppearing();
     HockeyappHelpers.TrackEvent(HockeyappConstants.WeatherPageAppeared);
 }
Exemplo n.º 9
0
 private void ExecuteFeedbackButtonCommand()
 {
     HockeyappHelpers.TrackEvent("Feedback Button Tapped");
     DependencyService.Get <IHockeyAppFeedbackService>()?.GiveFeedback();
 }
Exemplo n.º 10
0
        //private async Task ExecuteChangeLocationCommand()
        //{
        //	var yesNo = await DisplayAlert("Update Location", "Are you sure you want to change your location?", "Yes", "No");

        //	if (yesNo)
        //	{
        //		if (DefaultLocation.Text != _currentuser.defaultLocation)
        //		{
        //			_currentuser.defaultLocation = DefaultLocation.Text;

        //			var success = await AzureService.Instance.SaveUserAsync(_currentuser);
        //			if (!success)
        //			{
        //				await DisplayAlert("Error!", "Error changing your location", "OK");
        //			}
        //			else {
        //				await DisplayAlert("Success!", $"You have changed your default location to {DefaultLocation.Text}", "OK");
        //				Settings.Current.City = DefaultLocation.Text;
        //			}
        //		}
        //		else {
        //			await DisplayAlert("Same Location", "You didn't change the location!", "OK");
        //		}
        //	}
        //}

        private void ExecuteCrashButtonCommand()
        {
            HockeyappHelpers.TrackEvent("Crash Button Tapped");
            throw new Exception("Crash Button Tapped");
        }
Exemplo n.º 11
0
 protected override void OnAppearing()
 {
     base.OnAppearing();
     HockeyappHelpers.TrackEvent("Weather Page Appeared");
 }
Exemplo n.º 12
0
 private void ExecuteCrashButtonCommand()
 {
     HockeyappHelpers.TrackEvent(HockeyappConstants.CrashButtonTapped);
     throw new Exception(HockeyappConstants.CrashButtonTapped);
 }