public async Task <QueryResult <Asset> > GetAssetsAsync(AssetQuery assetQuery)
        {
            IQueryable <MongoAsset> query = Assets.AsQueryable();

            if (assetQuery.Folder != null)
            {
                query = query.Where(x => x.Folder == assetQuery.Folder.Value);
            }

            if (string.IsNullOrEmpty(assetQuery.Pattern) == false)
            {
                query = query.Where(x => x.Name !.Contains(assetQuery.Pattern));
            }

            QueryResult <Asset> queryResult = new QueryResult <Asset>();

            queryResult.Items = query
                                .OrderByDescending(x => x.CreatedAt)
                                .Take(assetQuery.Take)
                                .ToList()
                                .Select(x => x.FromMongo())
                                .ToList();
            queryResult.Offset     = assetQuery.Take;
            queryResult.Count      = queryResult.Items.Count;
            queryResult.TotalCount = 0;

            return(queryResult);
        }
        public async Task <Asset> GetAssetAsync(Guid id)
        {
            MongoAsset asset = await Assets.AsQueryable().FirstOrDefaultAsync(x => x.Id == id);

            return(asset.FromMongo());
        }