// vieno operatoriaus vienos GS lentelės duomenis - fetchina, paverčia WeldingInspection ir updateinaDB bei GS private static void fetchConvertUpdateSheet(SheetsService service, Spreadsheets.Operator operatorData, // lemia, katro operatoriaus spreadsheet Spreadsheets.SheetsRanges.SheetRangeData rangeData, // lemia, katrą to operatoriaus lentelę ConvertDataToListMethod convertMethod, // -- DbUpdateMethod dbUpdateMethod) // -- { try { List <IList <Object> > data = SheetDataFetcher.Fetch( operatorData.SpreadsheetId, rangeData.RangeAddress, rangeData.FilterColumn.Index, service).ToList(); List <WeldingInspection> inspectionList = convertMethod(data, rangeData.FieldMappings, operatorData.OperatorId); dbUpdateMethod(inspectionList); results.AppendFormat("{0} {1} db update OK", operatorData.OperatorId, rangeData.SheetName).AppendLine(); allInspections = allInspections.Concat(inspectionList); } catch (Exception ex) { results.AppendFormat("{0} {1} db update FAIL.", operatorData.OperatorId, rangeData.SheetName).AppendLine(); Exception e; if (ex.InnerException != null) { e = ex.InnerException; } else { e = ex; } results.AppendFormat("Exception message: {0}", e.Message).AppendLine(); results.AppendLine("Google Sheets lentelėje duomenys nepažymimi kaip įvesti į DB ir šitie duomenys nebus įtraukti į ataskaitą."); results.AppendLine(); return; } // updateinama Google Sheets lentelė. // jeigu GS updateinimas nutrūktų, informuoja, kad tokio operatoriaus tokie patikrinimai į dB sukišti, bet lentelė neatnaujinta. try { BatchUpdateValuesResponse response = GSheetsUpdater.BatchUpdateSheet(operatorData.SpreadsheetId, rangeData, service); results.AppendFormat("{0} {1} Google Sheets update OK", operatorData.OperatorId, rangeData.SheetName).AppendLine(); results.AppendLine(); } catch (Exception ex) { results.AppendFormat("{0} {1} Google Sheets update FAIL.", operatorData.OperatorId, rangeData.SheetName).AppendLine(); results.AppendFormat("Failure info: {0}", ex.Message).AppendLine(); results.Append("DĖMESIO! Kadangi duomenys į duomenų bazę sukelti, tie duomenys bus įtraukti į ataskaitą, kaip sutvarkyti. "); results.AppendLine("Google Sheets lentelę reikėtų sutvarkyti rankiniu būdu - prisijungti prie Google Sheets, atsidaryti lentelę ir joje pažymėti, kurie duomenys yra sukelti į DB."); results.AppendLine(); } }
// vieno operatoriaus vienos GS lentelės duomenis - fetchina, paverčia WeldingInspection ir patikrina private static StringBuilder fetchConvertVerifySheet(SheetsService service, Spreadsheets.Operator operatorData, // lemia, katro operatoriaus spreadsheet Spreadsheets.SheetsRanges.SheetRangeData rangeData, // lemia, katrą to operatoriaus lentelę ConvertDataToListMethod convertMethod, // -- VerifyObjectsMethod verifyMethod) // -- { List <IList <Object> > data = SheetDataFetcher.Fetch( operatorData.SpreadsheetId, rangeData.RangeAddress, rangeData.FilterColumn.Index, service).ToList(); List <WeldingInspection> inspectionList = convertMethod(data, rangeData.FieldMappings, operatorData.OperatorId); allInspections.Concat(inspectionList); // vėlesniam pasikartojimų tikrinimui List <BadData> bdList = verifyMethod(inspectionList, operatorData.OperatorId); return(BadDataReportCreator.CreatePlainTxt(bdList)); }