Bit.Api.Controllers.SitesController.ExpandManyAsync C# (CSharp) Method

ExpandManyAsync() private method

private ExpandManyAsync ( IEnumerable sites, ICollection responses, string expand, IEnumerable folders ) : System.Threading.Tasks.Task
sites IEnumerable
responses ICollection
expand string
folders IEnumerable
return System.Threading.Tasks.Task
        private async Task ExpandManyAsync(IEnumerable<Cipher> sites, ICollection<SiteResponseModel> responses, string[] expand, IEnumerable<Cipher> folders)
        {
            if(expand == null || expand.Count() == 0)
            {
                return;
            }

            if(expand.Any(e => e.ToLower() == "folder"))
            {
                if(folders == null)
                {
                    folders = await _cipherRepository.GetManyByTypeAndUserIdAsync(Core.Enums.CipherType.Folder, new Guid(_userManager.GetUserId(User)));
                }

                if(folders != null && folders.Count() > 0)
                {
                    foreach(var response in responses)
                    {
                        var site = sites.SingleOrDefault(s => s.Id.ToString() == response.Id);
                        if(site == null)
                        {
                            continue;
                        }

                        var folder = folders.SingleOrDefault(f => f.Id == site.FolderId);
                        if(folder == null)
                        {
                            continue;
                        }

                        response.Folder = new FolderResponseModel(folder);
                    }
                }
            }
        }
    }