Example #1
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));
        }
Example #2
0
        /// <summary>
        /// Single Google Sheets sheet:
        /// 1. fetches data from the sheet
        /// 2. converts it to WeldingInspection objects
        /// 3. verifies if the objects are valid for updating DB
        /// </summary>
        /// <param name="service">Google Sheets service</param>
        /// <param name="operatorData">which operator's spreadsheet</param>
        /// <param name="rangeData">which sheet of the spreadsheet</param>
        /// <param name="convertMethod">data converting method, specific to this sheet type</param>
        /// <param name="verifyMethod">data verifying method specific to this sheet type</param>
        /// <param name="sb">reference to the string builder to output workflow information</param>
        /// <returns>success or failure</returns>
        private static bool DoControllSingleSheet(
            SheetsService service,
            Spreadsheets.Operator operatorData,                 // lemia, katro operatoriaus spreadsheet
            Spreadsheets.SheetsRanges.SheetRangeData rangeData, // lemia, katrą to operatoriaus lentelę
            ConvertDataToWIMethod convertMethod,                // tam lentelės tipui specifinis convert metodas
            VerifyObjectsMethod verifyMethod,                   // tam lentelės tipui specifinis verify metodas
            StringBuilder sb)
        {
            string operSheet = string.Format(Messages.Default.OperSheetFrmt,
                                             operatorData.OperatorId, rangeData.SheetName);

            // fetch data from GoogleSheets
            List <IList <Object> > dataRows;

            try
            {
                dataRows = SheetDataFetcher.Fetch(
                    operatorData.SpreadsheetId,
                    rangeData.RangeAddress,
                    rangeData.FilterColumn.Index,
                    service).ToList();
            }
            catch (Exception ex)
            {
                string errorText = Messages.Default.GSDataFetchFail;
                sb.AppendLine(errorText);
                sb.AppendLine(Messages.Default.FailureInfo + ex.Message);
                LogWriter.Log(ex);
                OnProgressUpdated(0, errorText);
                return(false);
            }

            // convert row data to WeldingInspection objects
            List <WeldingInspection> wiList;

            try
            {
                wiList = convertMethod(dataRows, rangeData.FieldMappings, operatorData.OperatorId);
            }
            catch (BadDataException bdEx)
            {
                string         errorText    = operSheet + Messages.Default.BadGSData;
                List <BadData> bdl          = bdEx.BadDataList.ToList();
                string         bdListString = BadDataReportCreator.CreateString(bdl).ToString();
                sb.AppendLine(errorText);
                sb.AppendLine(bdListString);
                OnProgressUpdated(0, errorText);
                return(false);
            }
            catch (Exception ex)
            {
                string errorText = operSheet + Messages.Default.GSDataConvertFail;
                sb.AppendLine(errorText);
                sb.AppendLine(Messages.Default.FailureInfo + ex.Message);
                LogWriter.Log(ex);
                OnProgressUpdated(0, errorText);
                return(false);
            }
            allInspections = allInspections.Concat(wiList);

            // verify WeldingInspection objects
            List <BadData> bdList;

            bdList = verifyMethod(wiList, operatorData.OperatorId);
            if (bdList.Count > 0)
            {
                string strBadDataList = BadDataReportCreator.CreateString(bdList.ToList()).ToString();
                sb.AppendLine(operSheet + Messages.Default.GSDataVerifyResult).AppendLine(strBadDataList);
            }
            else
            {
                sb.AppendLine(operSheet + Messages.Default.GSDataVerifyOK);
            }

            return(true);
        }