You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.4 KiB

1 year ago
using FlyoutTabSearch.Data;
namespace FlyoutTabSearch.Pages;
public partial class SunrisePage : ContentPage
{
ILatLongService LatLongService { get; set; }
public SunrisePage()
{
InitializeComponent();
LatLongService = new LatLongService();
}
protected override async void OnAppearing()
{
base.OnAppearing();
activityWaiting.IsRunning = true;
var sunriseSunsetData = await GetSunriseSunsetData();
InitializeUI(sunriseSunsetData.Item1, sunriseSunsetData.Item2, sunriseSunsetData.Item3);
activityWaiting.IsRunning = false;
}
async Task<(DateTime, DateTime, TimeSpan)> GetSunriseSunsetData()
{
var latLongData = await LatLongService.GetLatLong();
var sunData = await new SunriseService().GetSunriseSunsetTimes(latLongData.Latitude, latLongData.Longitude);
var riseTime = sunData.Sunrise.ToLocalTime();
var setTime = sunData.Sunset.ToLocalTime();
var span = setTime.TimeOfDay - riseTime.TimeOfDay;
return (riseTime, setTime, span);
}
void InitializeUI(DateTime riseTime, DateTime setTime, TimeSpan span)
{
lblDate.Text = DateTime.Today.ToString("D");
lblSunrise.Text = riseTime.ToString("h:mm tt");
lblDaylight.Text = $"{span.Hours} hours, {span.Minutes} minutes";
lblSunset.Text = setTime.ToString("h:mm tt");
}
}