コード例 #1
0
        public async Task <List <TClass> > AddRangeAsync(List <TClass> listEntities, bool cleanData)
        {
            if (cleanData)
            {
                var all = await GetAllAsync();

                foreach (var getEntity in all)
                {
                    if (getEntity.Photos != null && getEntity.Photos.Any())
                    {
                        foreach (var photo in getEntity.Photos)
                        {
                            AzureBlobHelper.DeletePhoto(photo.FileName, TypeTable.Certificates);
                            DataContext.Entry(photo).State = EntityState.Deleted;
                        }
                    }

                    if (getEntity.Contacts != null && getEntity.Contacts.Any())
                    {
                        foreach (var contact in getEntity.Contacts)
                        {
                            DataContext.Entry(contact).State = EntityState.Deleted;
                        }
                    }

                    if (getEntity.Locations != null && getEntity.Locations.Any())
                    {
                        foreach (var location in getEntity.Locations)
                        {
                            DataContext.Entry(location).State = EntityState.Deleted;
                        }
                    }


                    // DataContext.Entry(getEntity).Collection("Locations").Load();
                    // DataContext.Entry(getEntity).Collection("Photos").Load();
                    // DataContext.Entry(getEntity).Collection("Contacts").Load();
                    DataContext.Entry(getEntity).State = EntityState.Deleted;
                }
            }

            DataContext.SaveChanges();
            return(await base.AddRangeAsync(listEntities));
        }
コード例 #2
0
        /// <summary>
        /// Identifies person from temporary image taken from App
        /// </summary>
        /// <returns>Name of identified person</returns>
        public async Task <string> Identify(string name)
        {
            var    azureBlobHelper = new AzureBlobHelper();
            string takenImageUri   = null;

            takenImageUri = azureBlobHelper.GetImageUri(name);
            if (takenImageUri == null)
            {
                throw new ManagerException(RecognitionErrorMessages.WrongUriError);
            }

            var memoryStream = new MemoryStream();

            memoryStream = RecUtil.GetStreamFromUri(takenImageUri);

            var faces = await _faceServiceClient.DetectAsync(memoryStream);

            if (faces.Length == 0 || faces == null)
            {
                throw new ManagerException(RecognitionErrorMessages.NoFacesFoundError);
            }

            var faceIds = faces.Select(face => face.FaceId).ToArray();

            var results = await _faceServiceClient.IdentifyAsync(_groupId, faceIds);

            if (results.Length == 0 || results == null || results[0].Candidates.Length == 0 || results[0].Candidates[0] == null)
            {
                throw new ManagerException(RecognitionErrorMessages.NoOneIdentifiedError);
            }

            var candidateId = results[0].Candidates[0].PersonId;
            var person      = await _faceServiceClient.GetPersonAsync(_groupId, candidateId);

            azureBlobHelper.DeletePhoto(name);

            return(person.Name);
        }