/// <summary> /// Удаление из общего списка объектов типа MeasTask - таких, которые имеют статус Z /// и время их существования превышает время, заданное параметром TimeOut /// </summary> /// <param name="se"></param> /// <param name="TimeOut"></param> public static void FindAndDestroyObject(this MeasTask se, int TimeOut, string Status) { lock (tmLife) { ExtendClases <MeasTask> rx = tmLife.Find(t => t.Key.Id.Value == se.Id.Value && t.Key.Status == Status); if (rx != null) { if (rx.Counter > TimeOut) { tmLife.RemoveAll(t => t.Key.Id.Value == se.Id.Value && t.Key.Status == Status); GlobalInit.LIST_MEAS_TASK.RemoveAll(t => t.Id.Value == se.Id.Value && t.Status == Status); } } } }
/// <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> /// Удаление из общего списка объектов типа MeasurementResults - таких, которые имеют статус Z /// и время их существования превышает время, заданное параметром TimeOut /// </summary> /// <param name="se"></param> /// <param name="TimeOut"></param> public static bool FindAndDestroyObject(this MeasurementResults se, int TimeOut, string Status) { bool isSuccessDestroy = false; lock (tmLife) { ExtendClases <MeasurementResults> rx = tmLife.Find(t => t.Key.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.Key.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Key.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Key.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId && t.Key.Status == Status); if (rx != null) { if (rx.Counter > TimeOut) { tmLife.RemoveAll(t => t.Key.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.Key.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Key.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Key.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId && t.Key.Status == Status); GlobalInit.LST_MeasurementResults.RemoveAll(t => t.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId && t.Status == Status); isSuccessDestroy = true; } } } return(isSuccessDestroy); }
/// <summary> /// Добавление нового объекта в список объектов и старт таймера /// для отсчитывания времени его существования /// </summary> /// <param name="se"></param> public static void StartLifeTime(this MeasTask se) { lock (tmLife) { ExtendClases <MeasTask> rx = tmLife.Find(t => t.Key.Id.Value == se.Id.Value); if (rx == null) { tmLife.Add(new ExtendClases <MeasTask>(se)); GlobalInit.LIST_MEAS_TASK.RemoveAll(t => t.Id.Value == se.Id.Value); GlobalInit.LIST_MEAS_TASK.Add(se); } else { if (tmLife.Find(t => t.Key.Id.Value == se.Id.Value) != null) { tmLife.RemoveAll(t => t.Key.Id.Value == se.Id.Value); tmLife.Add(new ExtendClases <MeasTask>(se)); GlobalInit.LIST_MEAS_TASK.RemoveAll(t => t.Id.Value == se.Id.Value); GlobalInit.LIST_MEAS_TASK.Add(se); } } } }
/// <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); } } } }
/// <summary> /// Добавление нового объекта в список объектов и старт таймера /// для отсчитывания времени его существования /// </summary> /// <param name="se"></param> public static void StartLifeTime(this MeasurementResults se) { lock (tmLife) { ExtendClases <MeasurementResults> rx = tmLife.Find(t => t.Key.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.Key.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Key.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Key.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId); MeasurementResults res = GlobalInit.LST_MeasurementResults.Find(t => t.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId); if ((rx == null) && (res == null)) { tmLife.Add(new ExtendClases <MeasurementResults>(se)); GlobalInit.LST_MeasurementResults.RemoveAll(t => t.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId); GlobalInit.LST_MeasurementResults.Add(se); } else { if ((tmLife.Find(t => t.Key.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.Key.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Key.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Key.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId) != null) || (res != null)) { tmLife.RemoveAll(t => t.Key.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.Key.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Key.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Key.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId); tmLife.Add(new ExtendClases <MeasurementResults>(se)); GlobalInit.LST_MeasurementResults.RemoveAll(t => t.Id.MeasTaskId.Value == se.Id.MeasTaskId.Value && t.StationMeasurements.StationId.Value == se.StationMeasurements.StationId.Value && t.Id.SubMeasTaskId == se.Id.SubMeasTaskId && t.Id.SubMeasTaskStationId == se.Id.SubMeasTaskStationId); GlobalInit.LST_MeasurementResults.Add(se); } } } }