/// <summary> /// Метод, выполняющий /// </summary> /// <param name="sdr_t"></param> /// <returns></returns> public static MeasurementResults GenerateMeasResults(MeasSdrResults sdr_t) { MeasurementResults res = new MeasurementResults(); if (sdr_t != null) { res = sdr_t.CreateMeasurementResults(); } return(res); }
/// <summary> /// Удаление из общего списка объектов типа MeasSDRResults - таких, которые имеют статус Z /// и время их существования превышает время, заданное параметром TimeOut /// </summary> /// <param name="se"></param> /// <param name="TimeOut"></param> public static void FindAndDestroyObject(this MeasSdrResults se, int TimeOut, string Status) { lock (tmLife) { ExtendClases <MeasSdrResults> rx = tmLife.Find(t => t.Key.MeasTaskId.Value == se.MeasTaskId.Value && t.Key.MeasSubTaskId.Value == se.MeasSubTaskId.Value && t.Key.MeasSubTaskStationId == se.MeasSubTaskStationId && t.Key.SensorId.Value == se.SensorId.Value && t.Key.status == Status); if (rx != null) { if (rx.Counter > TimeOut) { tmLife.RemoveAll(t => t.Key.MeasTaskId.Value == se.MeasTaskId.Value && t.Key.MeasSubTaskId.Value == se.MeasSubTaskId.Value && t.Key.MeasSubTaskStationId == se.MeasSubTaskStationId && t.Key.SensorId.Value == se.SensorId.Value && t.Key.status == Status); GlobalInit.MEAS_SDR_RESULTS.RemoveAll(t => t.MeasTaskId.Value == se.MeasTaskId.Value && t.MeasSubTaskId.Value == se.MeasSubTaskId.Value && t.MeasSubTaskStationId == se.MeasSubTaskStationId && t.SensorId.Value == se.SensorId.Value && t.status == Status); } } } }
/// <summary> /// Добавление нового объекта в список объектов и старт таймера /// для отсчитывания времени его существования /// </summary> /// <param name="se"></param> public static void StartLifeTime(this MeasSdrResults se) { lock (tmLife) { ExtendClases <MeasSdrResults> rx = tmLife.Find(t => t.Key.MeasTaskId.Value == se.MeasTaskId.Value && t.Key.MeasSubTaskId.Value == se.MeasSubTaskId.Value && t.Key.MeasSubTaskStationId == se.MeasSubTaskStationId && t.Key.SensorId.Value == se.SensorId.Value); if (rx == null) { tmLife.Add(new ExtendClases <MeasSdrResults>(se)); GlobalInit.MEAS_SDR_RESULTS.RemoveAll(t => t.MeasTaskId.Value == se.MeasTaskId.Value && t.MeasSubTaskId.Value == se.MeasSubTaskId.Value && t.MeasSubTaskStationId == se.MeasSubTaskStationId && t.SensorId.Value == se.SensorId.Value); GlobalInit.MEAS_SDR_RESULTS.Add(se); } else { if (tmLife.Find(t => t.Key.MeasTaskId.Value == se.MeasTaskId.Value && t.Key.MeasSubTaskId.Value == se.MeasSubTaskId.Value && t.Key.MeasSubTaskStationId == se.MeasSubTaskStationId && t.Key.SensorId.Value == se.SensorId.Value) != null) { tmLife.RemoveAll(t => t.Key.MeasTaskId.Value == se.MeasTaskId.Value && t.Key.MeasSubTaskId.Value == se.MeasSubTaskId.Value && t.Key.MeasSubTaskStationId == se.MeasSubTaskStationId && t.Key.SensorId.Value == se.SensorId.Value); tmLife.Add(new ExtendClases <MeasSdrResults>(se)); GlobalInit.MEAS_SDR_RESULTS.RemoveAll(t => t.MeasTaskId.Value == se.MeasTaskId.Value && t.MeasSubTaskId.Value == se.MeasSubTaskId.Value && t.MeasSubTaskStationId == se.MeasSubTaskStationId && t.SensorId.Value == se.SensorId.Value); GlobalInit.MEAS_SDR_RESULTS.Add(se); } } } }