Exemplo n.º 1
0
 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);
                            }
                        }
                    }

                }
            }
        }