internal Dictionary <string, DatabaseRow> FetchAllDatabaseRowsFromSpreadsheet(string familyNamesColumn) { var familyNames = SpreadsheetHandler.GetValuesFromRange(_service, _spreadsheet.Id, $"{_spreadsheet.DatabaseSheet.Name}!{familyNamesColumn}:{familyNamesColumn}"); var characterNames = SpreadsheetHandler.GetValuesFromRange(_service, _spreadsheet.Id, $"{_spreadsheet.DatabaseSheet.Name}!{familyNamesColumn}:{familyNamesColumn}"); if (familyNames.Count == 0) { return(null); } var rowDictionary = new Dictionary <string, DatabaseRow>(); for (var i = 0; i < familyNames.Count; i++) { try { var familyName = familyNames[i][0].ToString(); var characterName = characterNames[i][0].ToString(); var member = new DatabaseMember(familyName, characterName); var databaseRow = new DatabaseRow(i + 1, member); rowDictionary.TryAdd(familyName, databaseRow); } catch { continue; } } _spreadsheet.DatabaseSheet.DatabaseRows = rowDictionary; return(rowDictionary); }
internal DatabaseMember AddMember(string familyName, string characterName) { //TODO: throw? if (_supportMethods.MemberExists(familyName)) { return(null); } var member = new DatabaseMember(familyName, characterName); var values = _supportMethods.ParseToConsecutiveSpreadsheetValues(new List <string> { familyName, characterName }); SpreadsheetHandler.NewMember(_service, _spreadsheet.Id, _spreadsheet.DatabaseSheet, values); //Update rows _supportMethods.FetchAllDatabaseRowsFromSpreadsheet(_spreadsheet.DatabaseSheet.FamilyNamesColumn); return(member); }