protected override async Task OnInitializedAsync() { var tokenResult = await AuthenticationService.RequestAccessToken(); if (tokenResult.TryGetToken(out var token)) { using (var httpClient = new HttpClient()) { try { httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token.Value}"); var weatherForecastApiClient = new WeatherForecastApiClient(Navigation.BaseUri, httpClient); forecasts = await weatherForecastApiClient.WeatherForecastAsync(); } catch (ApiException exception) { error = exception.Message; } } } else { Navigation.NavigateTo(tokenResult.RedirectUrl); } }
public async Task Test1() { _mockProviderService .UponReceiving("Receber a previsão do tempo para amanhã") .With(new ProviderServiceRequest { Path = "/WeatherForecast/tomorrow", Method = HttpVerb.Get, Headers = new Dictionary <string, object> { { "Accept", "application/json" } } }) .WillRespondWith(new ProviderServiceResponse { Status = 200, Headers = new Dictionary <string, object> { { "Content-Type", "application/json; charset=utf-8" } }, Body = new { date = DateTime.Today.AddDays(1), summary = "Chilly", temperatureC = 15, temperatureF = 58 } }); var consumer = new WeatherForecastApiClient(_mockProviderServiceBaseUri); // Act var result = await consumer.GetForecastTomorrow(); // Assert result.Should().BeEquivalentTo( new WeatherForecastResponse { Date = DateTime.Today.AddDays(1), Summary = "Chilly", TemperatureC = 15, TemperatureF = 58 } ); _mockProviderService.VerifyInteractions(); }
private async ValueTask InitData() { if (Connectivity.NetworkAccess != NetworkAccess.Internet) { CurrentState = LayoutState.Error; } else { WeatherForecastApiClient apiClient = new WeatherForecastApiClient(); var data = await apiClient.GetCurrentForecast(); var fiveDaysData = await apiClient.GetFiveDaysForecast(); if (data != null) { CurrentTemperature = ((int)data.main.temp).ToString(); MaxTemperature = ((int)data.main.temp_max).ToString(); MinTemperature = ((int)data.main.temp_min).ToString(); WeatherDescription = data.weather[0].description; WeatherIcon = GetIconByCode(data.weather[0].icon); SetColorsByIcon(WeatherIcon); CityName = data.name; CurrentDate = DateTime.UtcNow.AddSeconds(data.timezone); if (fiveDaysData != null) { var fiveDayTemperatures = fiveDaysData.list.Where(x => x.dt_converted.Date > DateTime.Now && x.dt_converted.Hour == 12) .Select(x => new DayForecastModel { Icon = GetIconByCode(x.weather[0].icon), NameOfDay = x.dt_converted.DayOfWeek.ToString(), Temperature = ((int)x.main.temp).ToString() }); FiveDaysItems = new ObservableCollection <DayForecastModel>(fiveDayTemperatures); } CurrentState = LayoutState.Success; } } }