public WeldingInspection( long?id, string linija, int kelias, int km, int?pk, int m, int?siule, string salygKodas, string operatorius, string aparatas, DateTime data, string suvirino, Kelintas kelintasTikrinimas, string pastaba = "") { this.Id = id; this.Linija = linija; this.Kelias = kelias; this.Km = km; this.Pk = pk; this.M = m; this.Siule = siule; if (this.Kelias == 8 || this.Kelias == 9) { this.Nr = this.M; } else { this.Nr = null; } this.SalygKodas = salygKodas; this.Operatorius = operatorius; this.Aparatas = aparatas; this.TikrinimoData = data; this.Suvirino = suvirino; this.KelintasTikrinimas = kelintasTikrinimas; this.Pastaba = pastaba; }
// iš Google Sheets data formato List<ILIst<Object>> padaro List<WeldingInspection> // , o jeigu buvo rasta blogų duomenų, tuomet throw new BadDataException public static List <WeldingInspection> ConvertNepirmieji(List <IList <Object> > data, string[] mapping, string operatorius) { List <WeldingInspection> tikrinimaiList = new List <WeldingInspection>(); List <BadData> badDataList = new List <BadData>(); if (data == null || data.Count == 0) { return(tikrinimaiList); } foreach (var row in data) { object value; // row stulpelio value int bdlCount = badDataList.Count; // kiek buvo BadData šitos row tikrinimo pradžioje long id = 0; string linija = null, salKodas = null, aparatas = null; int kelias = -1, km = -1, m = -1; int? pk = null, siule = null; DateTime tikrinimoData = DateTime.MinValue; Kelintas kelintas = Kelintas.I; // specifinis nepirmiesiems value = getRowItem("id", mapping, row); string idZyma = value == null ? "no id" : value.ToString(); // žyma, pažymėti, kurioje vietoje problemos try { id = Convert.ToInt64(value); } catch { badDataList.Add(new BadData(operatorius, SheetType.nepirmieji, idZyma, "suvirinimo id")); } // tikrinami bendri pirmiems ir nepirmiems List <string> messages = patikrintiBendrus(row, mapping, ref linija, ref kelias, ref km, ref pk, ref m, ref siule, ref salKodas, ref aparatas, ref tikrinimoData); foreach (string message in messages) { badDataList.Add(new BadData(operatorius, SheetType.nepirmieji, idZyma, message)); } // specifinis nepirmiems value = getRowItem("kelintas_tikrinimas", mapping, row); if (isEmpty(value) || !new[] { "2", "3", "4", "papild" }.Contains(value.ToString().Trim())) { badDataList.Add(new BadData(operatorius, SheetType.nepirmieji, idZyma, "kelintas tikrinimas")); } else { string val = value.ToString().Trim(); switch (val) { case "2": kelintas = Kelintas.II; break; case "3": kelintas = Kelintas.III; break; case "4": kelintas = Kelintas.IV; break; case "papild": kelintas = Kelintas.papildomas; break; } } // jeigu tikrinant šitą row nebuvo aptikta problemų - new WeldingInspection if (bdlCount == badDataList.Count) { WeldingInspection wi = new WeldingInspection( id, linija, kelias, km, pk, m, siule, salKodas, operatorius, aparatas, tikrinimoData.Date, null, // suvirino kelintas); tikrinimaiList.Add(wi); } } if (badDataList.Count > 0) { throw new BadDataException("Blogi duomenys lentelėje - nepavyksta perskaityti vietos kodo", badDataList); } // jeigu visi įrašai geri return(tikrinimaiList); }