private bool SaveCalibrationResult(CalibrationMeasurement caliber, string traceNr, int WSID, byte SubWS, double measuredValue, double calibrationError) { if (DBResource != null) { return(DBResource.Calibration_SaveMeasurement(Int64.Parse(traceNr), WSID, SubWS, caliber.ID_DefaultValue, measuredValue, caliber.NominalValue, calibrationError, caliber.Name)); } else { return(true); } }
private void addMeasurements(Instrument objInstrument) { DataView objDataView = new DataView(CurrentDataTable); CalibrationMeasurement objMeasurement = new CalibrationMeasurement(); StringBuilder strbldrInstrument = new StringBuilder(); StringBuilder strbldrMeasurement = new StringBuilder(); StringBuilder strbldrInstrumentColumnHeader = new StringBuilder(); StringBuilder strbldrMeasurementColumnHeader = new StringBuilder(); DateTime dtmTemp; //objRow[txtInstrumentIDHdr.Text].ToString().Replace(" ", "") objDataView.RowFilter = "[" + txtInstrumentIDHdr.Text + "] = '" + objInstrument.InstrumentID + "'"; foreach (DataRowView objRow in objDataView) { for (int intCounter = 1; intCounter <= 3; intCounter++) { strbldrInstrumentColumnHeader.Clear(); strbldrInstrumentColumnHeader.Append("Test #" + intCounter); strbldrMeasurementColumnHeader.Clear(); strbldrMeasurementColumnHeader.Append("Result #" + intCounter); if (string.IsNullOrEmpty(objRow[strbldrMeasurementColumnHeader.ToString()].ToString()) || string.IsNullOrEmpty(objRow[strbldrInstrumentColumnHeader.ToString()].ToString())) break; if (objInstrument.Measurements == null) objInstrument.Measurements = new SortableSearchableBindingList<CalibrationMeasurement>(); strbldrInstrument.Clear(); strbldrInstrument.Append(objRow[strbldrInstrumentColumnHeader.ToString()].ToString()); strbldrMeasurement.Clear(); strbldrMeasurement.Append(objRow[strbldrMeasurementColumnHeader.ToString()].ToString()); try { objMeasurement = new CalibrationMeasurement { MeasuredBy = string.Empty, Value = strbldrMeasurement.ToString(), MeasurementDate = DateTime.TryParse(objRow[txtLCalDateHdr.Text].ToString(), out dtmTemp) ? dtmTemp : SharedVariables.MINDATE, MeasurementID = strbldrInstrumentColumnHeader.ToString() }; objInstrument.Measurements.Add(objMeasurement); db.SaveChanges(); } catch (Exception objEx) { try //if there is a column mismatch then a nullreference exception is thown when the below log is written. I place a try catch block here to handle it. { using (StreamWriter w = File.AppendText("log.txt"))//log error { SharedFunctions.Log(string.Format("Exception Error: Measurement for CheckFixture \r\n" + "InstrumentID='{0}'\r\n" + "MeasurementID='{1}'\r\n" + "Value='{2}'\r\n" + "Exception Details:{3}", objInstrument.InstrumentID, objMeasurement.MeasurementID, objMeasurement.Value, objEx), w); w.Close(); } objInstrument.Measurements.Remove(objMeasurement);//remove offending item from the list } catch (NullReferenceException objNullRefEx) { using (StreamWriter w = File.AppendText("log.txt"))//log error { SharedFunctions.Log(string.Format("Measurement Null Reference Exception:\r\n", objNullRefEx), w); } } catch (InvalidOperationException objInvalidOpEx) { using (StreamWriter w = File.AppendText("log.txt"))//log error { SharedFunctions.Log(string.Format("Invalid Operation Exception: The app tried to remove a measurement from the collection that was never added\r\n", objInvalidOpEx), w); } } } } } }