Esempio n. 1
0
        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);
        }