Ejemplo n.º 1
0
        public static async Task <IEnumerable <Guid?> > DetectFaceAsync(IFaceStream input)
        {
            await SimulateLowQoSNetworkAsync();

            var random = Random.NextDouble();

            if (random < .98)
            {
                return(Enumerable.Range(0, 1).Select(_ => (Guid?)Guid.NewGuid()));
            }
            else if (random < .99)
            {
                return(Enumerable.Range(0, 2).Select(_ => (Guid?)Guid.NewGuid()));
            }
            else
            {
                return(new Guid?[] { });
            }
        }
Ejemplo n.º 2
0
 public static async Task <IEnumerable <bool> > DetermineAccessAsync(IFaceStream input)
 {
     try
     {
         return(await DetectFaceAsync(input)
                .ContinueWith(
                    task => task.Result
                    .Where(faceId => faceId.HasValue)
                    .Select(faceId => RecognizeFaceAsync(faceId.Value)))
                .ContinueWith(
                    task => task.Result.AsCompleted()
                    .Where(personId => personId.HasValue)
                    .Select(personId => DetermineAccessAsync(personId.Value)))
                .ContinueWith(
                    task => task.Result.AsCompleted()));
     }
     finally
     {
         input.FaceStream.Dispose();
     }
 }
Ejemplo n.º 3
0
 public void Post(IFaceStream stream)
 {
     ProcessingBlock.Post(stream);
 }