private async Task AddEventToCalendar() { if (!await CalendarService.RequestPermissions()) { await Shell.Current.DisplayAlert(LN.AddingToCalendarTitle, LN.InsufficientRights, LN.Ok); return; } var calendar = await CalendarService.GetCalendar(); if (calendar == null) { // User didn't choose calendar return; } var calendarEvent = CalendarService.GenerateCalendarEvent(Event, EventNumber, EventsCount); bool isAdded = await CalendarService.AddOrUpdateEvent(calendar, calendarEvent); if (!isAdded) { await Shell.Current.CurrentPage.DisplayAlert(LN.AddingToCalendarTitle, LN.AddingEventToCalendarFail, LN.Ok); return; } // Displaying toast and closing popup at the same time await Task.WhenAll( Shell.Current.CurrentPage.DisplayToastAsync(LN.AddingEventToCalendarSuccess), ClosePopup() ); }