BeFriend.Services.SpineClass.GetPhoneLinesAsync C# (CSharp) Method

GetPhoneLinesAsync() private method

private GetPhoneLinesAsync ( ) : PhoneLine>>.Task
return PhoneLine>>.Task
        private async Task<Dictionary<Guid, PhoneLine>> GetPhoneLinesAsync()
        {
            PhoneCallStore store = await PhoneCallManager.RequestStoreAsync();

                // Start the PhoneLineWatcher
                var watcher = store.RequestLineWatcher();
                var phoneLines = new List<PhoneLine>();
                var lineEnumerationCompletion = new TaskCompletionSource<bool>();
                watcher.LineAdded += async (o, args) =>
                {
                    var line = await PhoneLine.FromIdAsync(args.LineId);
                    phoneLines.Add(line);
                };
                watcher.Stopped += (o, args) => lineEnumerationCompletion.TrySetResult(false);
                watcher.EnumerationCompleted += (o, args) => lineEnumerationCompletion.TrySetResult(true);
                watcher.Start();

                // Wait for enumeration completion
                if (!await lineEnumerationCompletion.Task)
                {
                    throw new Exception("Phone Line Enumeration failed");
                }

                watcher.Stop();

                Dictionary<Guid, PhoneLine> returnedLines = new Dictionary<Guid, PhoneLine>();

                foreach (PhoneLine phoneLine in phoneLines)
                {
                    if (phoneLine != null && phoneLine.Transport == PhoneLineTransport.Cellular)
                    {
                        returnedLines.Add(phoneLine.Id, phoneLine);
                    }
                }

                return returnedLines;
           
        }
        private async Task<PhoneLine> GetDefaultPhoneLineAsync()