public async Task <User> FindBySubjectIdAsync(string subjectId)
        {
            var user = await _documentDbService.GetDocuments <User>(
                $"{FabricIdentityConstants.DocumentTypes.UserDocumentType}{subjectId.ToLower()}");

            return(user?.FirstOrDefault());
        }
Exemple #2
0
        public Task <IEnumerable <IdentityResource> > FindIdentityResourcesByScopeAsync(IEnumerable <string> scopeNames)
        {
            var identityResources = DocumentDbService
                                    .GetDocuments <IdentityResource>(FabricIdentityConstants.DocumentTypes.IdentityResourceDocumentType)
                                    .Result;

            var matchingResources = identityResources.Where(r => scopeNames.Contains(r.Name));

            return(Task.FromResult(matchingResources));
        }
Exemple #3
0
        public Task <IEnumerable <PersistedGrant> > GetAllAsync(string subjectId)
        {
            var persistedGrants = _documentDbService
                                  .GetDocuments <PersistedGrant>(FabricIdentityConstants.DocumentTypes.PersistedGrantDocumentType).Result;

            var matchingGrants =
                persistedGrants.Where(p => p.SubjectId.Equals(subjectId, StringComparison.OrdinalIgnoreCase));

            return(Task.FromResult(matchingGrants));
        }
Exemple #4
0
        /// <summary>
        /// Delete all jobs and model files associated with a document.
        /// </summary>
        /// <param name="doc">Document to delete jobs for.</param>
        /// <param name="docDbService">IDocDbService.</param>
        /// <param name="storageService">IStorageService.</param>
        /// <param name="batchService">Azure Batch Service</param>
        /// <param name="logger">Logger</param>
        /// <returns></returns>
        public static async Task DeleteJobsAndResourcesFromDoc(Document doc, IDocumentDbService docDbService, IStorageService storageService, IBatchService batchService, ILogger logger)
        {
            Contract.Requires(docDbService != null, nameof(docDbService));
            Contract.Requires(doc != null, nameof(doc));

            var jobs = await docDbService.GetDocuments <BatchJob>((j) => j.DocumentId == doc.Id);

            List <Task> taskList = new List <Task>();

            foreach (var job in jobs)
            {
                taskList.Add(DeleteJobAndResources(job, docDbService, storageService, batchService, logger));
            }

            try
            {
                await Task.WhenAll(taskList);
            }
            catch (AggregateException ex)
            {
                var message = $"Not able to delete {ex.InnerExceptions.Count} of the {taskList.Count} jobs for document {doc.Id}.";

                foreach (var e in ex.InnerExceptions)
                {
                    message += $" {e.Message}";
                }

                throw new BrowseCloudServiceException(message);
            }
        }
        public virtual async Task <IEnumerable <T> > GetAll()
        {
            var documentType = $"{typeof(T).Name.ToLowerInvariant()}:";

            return(await _dbService.GetDocuments <T>(documentType));
        }
Exemple #6
0
 public async Task <IEnumerable <T> > GetDocuments <T>(string documentType)
 {
     return(await _innerDocumentDbService.GetDocuments <T>(documentType));
 }
Exemple #7
0
 public Task <IEnumerable <T> > GetDocuments <T>(string documentKey)
 {
     return(_innerDocumentDbService.GetDocuments <T>(documentKey));
 }
Exemple #8
0
        /// <summary>
        /// Gets all documents the current user has access to, based on a list of identities.
        /// </summary>
        /// <param name="idsToSearch">List of identities to search documents for.</param>
        /// <param name="documentDbService">IDocumentDbService.</param>
        /// <returns></returns>
        public static async Task <IEnumerable <Document> > GetAllAccessibleDocuments(IEnumerable <string> idsToSearch, IDocumentDbService documentDbService)
        {
            Contract.Requires(documentDbService != null, nameof(documentDbService));

            return(await documentDbService.GetDocuments <Document>((doc) => idsToSearch.Contains(doc.Owner.Id) || doc.Acl.Any((u) => idsToSearch.Contains(u.Id))));
        }
Exemple #9
0
 public IEnumerable <Client> GetAllClients()
 {
     return(_documentDbService.GetDocuments <Client>(FabricIdentityConstants.DocumentTypes.ClientDocumentType)
            .Result.ToList());
 }
Exemple #10
0
 public virtual async Task <IEnumerable <T> > GetAll()
 {
     return(await DocumentDbService.GetDocuments <T>(DocumentKeyPrefix));
 }