public static async Task CheckForUserAsync()

in FamilyNotes/UserDetection/FacialSimilarity.cs [225:270]


        public static async Task<string> CheckForUserAsync(Uri UnidentifiedImage)
        {
            await _semaphore.WaitAsync();
            var DynamicUserImageStorageFile = await StorageFile.GetFileFromApplicationUriAsync(UnidentifiedImage);

            using(var DynamicUserImageFilestream = File.OpenRead(DynamicUserImageStorageFile.Path))
            {
                //Gets ID for face, which is good for 24 hours. 
                //Should we error check for multiple faces or no faces?
                IList<DetectedFace> DetectedFaces;
                await WaitOnTransactionCapAsync();
                try
                {
                    DetectedFaces = await _faceClient.Face.DetectWithStreamAsync(DynamicUserImageFilestream);
                    _transactionCount++;
                }
                catch (Exception)
                {
                    _semaphore.Release();
                    return "";
                }

                Guid? DynamicID = null;
                if (DetectedFaces.Count > 0)
                    DynamicID = DetectedFaces[0].FaceId;

                //FaceList SavedUserFaces = null;
                IList<SimilarFace> FacialSimilarityResults;
                try
                {

                    await WaitOnTransactionCapAsync();
                    FacialSimilarityResults = await _faceClient.Face.FindSimilarAsync(DynamicID.Value, _listKey);
                    _transactionCount++;
                }
                //catch
                catch(Exception e)
                {
                    _semaphore.Release();
                    return "";
                }

                _semaphore.Release();
                return FacialSimilarityResults.Count == 0 ? "" : _userNames[FacialSimilarityResults[0].PersistedFaceId.Value];
            }
        }