Задача с использованием .NET library for the Google Data API для перемещения по папкам на Google Диске, поиск необходимых электронных таблиц и изменение данных выбранных электронных таблиц.API приложений Google Apps: есть ли лучший способ найти соответствие между Документом API-документов документов и Таблицей API электронных таблиц?
Перемещение папок выполняется с использованием Google.GData.Documents.FolderQuery и других классов пространства имен Google.GData.Documents. После того, как найден правильный документ, необходимо управлять им, используя класс Google.GData.Spreadsheets.Spreadsheet. Теперь я нахожу соответствие между классами Google.GData.Documents.DocumentEntry
и Google.GData.Spreadsheets.Spreadsheet
, извлекая ключ документа из URL-адреса документа, итерируя все электронные таблицы, извлекая URL-адрес электронной таблицы и сравнивая эти два ключа. Код выглядит так:
private string GetKey(string url) {
string res = null;
Match match = Regex.Match(url, @"\?key=([A-Za-z0-9]+)");
if (match.Success) {
res = match.Groups[1].Value;
}
return res;
}
private SpreadsheetEntry GetSpreadSheetForDocument(SpreadsheetsService serviceSS, DocumentEntry entrySS) {
SpreadsheetEntry res = null;
string strSSKey = GetKey(entrySS.AlternateUri.Content);
Google.GData.Spreadsheets.SpreadsheetQuery query = new Google.GData.Spreadsheets.SpreadsheetQuery();
SpreadsheetFeed feed = serviceSS.Query(query);
foreach (SpreadsheetEntry entry in feed.Entries) {
if (GetKey(entry.AlternateUri.Content) == strSSKey) {
res = entry;
break;
}
}
return res;
}
Есть ли другой, более элегантный и правильный способ для этого?