예제 #1
0
        // 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();
            }
        }
예제 #2
0
        // 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));
        }