Я получаю список Azure больших двоичных объектов, а затем перебираю список. Я хочу найти в коллекции Cosmos DB, чтобы узнать, существует ли c .ImageFilename большого двоичного объекта. Если его не существует, добавьте новую запись в Cosmos Collection.
Эта строка не получает записи базы данных Cosmos:
var docExists = await _cosmosDbService.GetItemsAsyn c (item);
Раздел CosmosDBService.cs:
public async Task<IEnumerable<ANPRData>> GetItemsAsync(string queryString)
{
var query = this._container.GetItemQueryIterator<ANPRData>(new QueryDefinition(queryString));
List<ANPRData> results = new List<ANPRData>();
while (query.HasMoreResults)
{
var response = await query.ReadNextAsync();
results.AddRange(response.ToList());
}
return results;
}
Можете ли вы помочь?
//----------------------------------------------------------------------------------
//
namespace WebApp_Storage_DotNet.Controllers
{
using System;
using System.Collections.Generic;
using System.Web;
using System.Threading.Tasks;
using System.IO;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using Microsoft.Azure;
using System.Configuration;
using Microsoft.AspNetCore.Mvc;
using Microsoft.WindowsAzure.Storage.Auth;
using ANPR.Services;
using ANPR.Models;
public class UploadController : Controller
{
static CloudBlobClient blobClient;
const string blobContainerName = "hvsimages";
public string subFolder = "192-168-2-44/img/";
static CloudBlobContainer blobContainer;
public string accountName = "xxx";
public string accountKey ="xxx";
private ANPRData item;
public readonly ICosmosDbService _cosmosDbService;
public UploadController(ICosmosDbService cosmosDbService)
{
_cosmosDbService = cosmosDbService;
}
public async Task<ActionResult> Index()
{
try
{
var account = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
blobClient = account.CreateCloudBlobClient();
blobContainer = blobClient.GetContainerReference(blobContainerName);
List<Uri> allBlobs = new List<Uri>();
var directory = blobContainer.GetDirectoryReference("192-168-2-44/img/");
var result = await directory.ListBlobsSegmentedAsync(true, BlobListingDetails.None, 500, null, null, null);
foreach (var dirItem in result.Results)
{
string item = "SELECT * FROM c WHERE c.ImageFilename = '" + dirItem.Uri + "''";
var datas = await _cosmosDbService.GetItemsAsync(item);
Console.WriteLine(datas);
// Console.WriteLine(docExists);
if (datas == null)
{
var Bing = "I am Not Empty";
Console.WriteLine(Bing);
}
else
{
var Bing = "I am Empty";
Console.WriteLine(Bing);
}
allBlobs.Add(dirItem.Uri);
}
return View(allBlobs);
}
catch (Exception ex)
{
ViewData["message"] = ex.Message;
ViewData["trace"] = ex.StackTrace;
return View("Error");
}
}
}
}