public void loadArmorTypes() { armorTypes.Clear(); ValueRange response = GDriveManager.readSpreadsheet(logURI, "Constants"); IDictionary <string, int> headerMap = GDriveManager.getHeaderMap(response.Values); IEnumerable <IList <Object> > sorted = response.Values.Skip(1).OrderBy(f => f.ElementAt(headerMap[CONSTANTS_ARMOR_TYPES_NAME_COL]).ToString()); List <BulkLoader> rows = new List <BulkLoader>(); // Iterate through each row foreach (IList <Object> row in sorted) { ArmorTypeEntry at = new ArmorTypeEntry(); at.armorType = GDriveManager.readCell(row, headerMap[CONSTANTS_ARMOR_TYPES_NAME_COL]); // for some reason if data isn't present in the 2nd column the row array is set to 1 // not sure what happens if the first column was missing data if (row.Count > headerMap[CONSTANTS_TIER_COL]) { string tier = row[headerMap[CONSTANTS_TIER_COL]].ToString(); if (!tier.Equals("")) { tiers.Add(tier); } } armorTypes.Add(at); } tiers.Reverse(); logger.Info("Events loaded successfully. " + events.Count + " entries."); }
public void loadArmorTypes() { armorTypes.Clear(); // Get the first worksheet of the first spreadsheet. // TODO: Choose a worksheet more intelligently based on your // app's needs. WorksheetFeed wsFeed = spreadsheet.Worksheets; // Get the Event list worksheet WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries.ToList().Find(new Predicate<AtomEntry>(findArmorTypesWorkSheet)); ; // Define the URL to request the list feed of the worksheet. AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null); // Fetch the list feed of the worksheet. ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString()); listQuery.OrderByColumn = CONSTANTS_ARMOR_TYPES_NAME_COL; ListFeed listFeed = GDriveManager.getService().Query(listQuery); // Iterate through each row, printing its cell values. foreach (ListEntry row in listFeed.Entries) { // Print the first column's cell value //logger.Debug(row.Title.Text); ArmorTypeEntry at = new ArmorTypeEntry(); // Iterate over the remaining columns, and print each cell value foreach (ListEntry.Custom element in row.Elements) { //logger.Debug(element.Value); if (element.Value.Length > 0) { switch (element.LocalName.ToLower()) { case CONSTANTS_ARMOR_TYPES_NAME_COL: at.armorType = element.Value; break; case CONSTANTS_TIER_COL: tiers.Add(element.Value); break; } } } armorTypes.Add(at); } tiers.Reverse(); logger.Info("Events loaded successfully. " + events.Count + " entries."); }