I have written the following code:

<C#>


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Graph;
using Outlook = Microsoft.Office.Interop.Outlook;
using Microsoft.Graph.Models;
using Azure.Identity;
using System.Security.Policy;
using Microsoft.Office.Tools;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
using System.Globalization;

namespace Outage_Helper
{
    public partial class OutageCalendarPane : UserControl
    {
        private const string ClientId = "XXXX";
        private const string TenantId = "XXXX";
        private const string UtilityAccountUsername = "outage-helper@ct4.com";
        private const string UtilityAccountPassword = "XXXX";
        private GraphServiceClient _graphClient;
        private Outlook.MailItem _selectedMailItem;

        public OutageCalendarPane(Outlook.MailItem selectedMailItem)
        {
            InitializeComponent();
            _selectedMailItem = selectedMailItem;
            emailContentTextBox.Text = selectedMailItem.Body;
            AuthenticateAndInitializeGraphClient().ConfigureAwait(false);
        }

        private async Task AuthenticateAndInitializeGraphClient()
        {
            var credential = new ClientSecretCredential(TenantId, ClientId, UtilityAccountPassword);
            _graphClient = new GraphServiceClient(credential);
        }



        private async void submitBtn_Click(object sender, EventArgs e)
        {
            if (_graphClient != null)
            {
                string calendarId = "XXXX";
                var newEvent = new Event
                {
                    Subject = eventNameTextBox.Text,
                    Start = new DateTimeTimeZone { DateTime = startDateTimePicker.Value.ToString("o"), TimeZone = "UTC" },
                    End = new DateTimeTimeZone { DateTime = endDateTimePicker.Value.ToString("o"), TimeZone = "UTC" },
                    Body = new ItemBody
                    {
                        ContentType = BodyType.Text,
                        Content = $"Username: { _selectedMailItem.Sender.Name}\nNote: { eventNoteTextBox.Text}\n\nEmail Text: { emailContentTextBox.Text}"
                    }
        };

        await _graphClient.Users[UtilityAccountUsername].Calendars[calendarId].Events.PostAsync(newEvent).ConfigureAwait(false);
                MessageBox.Show("Outage event has been added to the shared calendar.");
                ((Form)this.TopLevelControl).Close();
            }
            else
            {
                MessageBox.Show("Error: Unable to add the outage event. Please try again.");
    }
} 

private void cancelBtn_Click(object sender, EventArgs e)
{
    ((Form)this.TopLevelControl).Close();
}
    }
}


</C#>

In the above code secret values have been replaced with XXXX.

The private async Task AuthenticateAndInitializeGraphClient() is not working. It appears to not have an await condition, and when run the variable _graphClient is null when it should be a ClientSecretCredential with the TenantID, ClientID and UtilityAccountPassword (app secret). These values are specified correctly in the code.

Please help me fix this error, either by code changes or assisting me to debug the program.