示例#1
0
 /// <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);
             }
         }
     }
 }
示例#2
0
 /// <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);
             }
         }
     }
 }
示例#3
0
        /// <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);
        }
示例#4
0
 /// <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);
             }
         }
     }
 }
示例#5
0
 /// <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);
             }
         }
     }
 }
示例#6
0
 /// <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);
             }
         }
     }
 }