void IJob.Execute(IJobExecutionContext context) { try { if (GlobalInit.MEAS_SDR_RESULTS.Count > 0) { for (int i = 0; i < GlobalInit.MEAS_SDR_RESULTS.Count; i++) { ClassesDBGetResult DbGetRes = new ClassesDBGetResult(); ClassConvertToSDRResults conv = new ClassConvertToSDRResults(); if (GlobalInit.MEAS_SDR_RESULTS.Count > 0) { if (GlobalInit.MEAS_SDR_RESULTS[0] != null) { int ID = -1; string Status_Original = GlobalInit.MEAS_SDR_RESULTS[0].status; MeasurementResults msReslts = ClassConvertToSDRResults.GenerateMeasResults(GlobalInit.MEAS_SDR_RESULTS[0]); if (msReslts.TypeMeasurements == MeasurementType.SpectrumOccupation) { msReslts.Status = Status_Original; } if (msReslts.MeasurementsResults != null) { if (msReslts.MeasurementsResults.Count() > 0) { if (msReslts.MeasurementsResults[0] is LevelMeasurementOnlineResult) { // Здесь в базу ничего не пишем (только в память) msReslts.Status = "O"; GlobalInit.LST_MeasurementResults.Add(msReslts); } else { System.Console.WriteLine(string.Format("Start save results...")); Task ge = new Task(() => { ID = DbGetRes.SaveResultToDB(msReslts); if (ID > 0) { GlobalInit.LST_MeasurementResults.Add(msReslts); GlobalInit.MEAS_SDR_RESULTS.Remove(GlobalInit.MEAS_SDR_RESULTS[0]); System.Console.WriteLine(string.Format("Success save results...")); } }); ge.Start(); ge.Wait(); } } } else { System.Console.WriteLine(string.Format("Start save results...")); Task ge = new Task(() => { ID = DbGetRes.SaveResultToDB(msReslts); if (ID > 0) { GlobalInit.LST_MeasurementResults.Add(msReslts); GlobalInit.MEAS_SDR_RESULTS.Remove(GlobalInit.MEAS_SDR_RESULTS[0]); System.Console.WriteLine(string.Format("Success save results...")); } }); ge.Start(); ge.Wait(); } } } System.Console.WriteLine(string.Format("LST_MeasurementResults count: {0}", GlobalInit.LST_MeasurementResults.Count())); System.Console.WriteLine(string.Format("MEAS_SDR_RESULTS count: {0}", GlobalInit.MEAS_SDR_RESULTS.Count())); DbGetRes.Dispose(); conv.Dispose(); CoreICSM.Logs.CLogs.WriteInfo(CoreICSM.Logs.ELogsWhat.Unknown, "ShedulerReceiveStatusMeastaskSDR "); } } } catch (Exception ex) { System.Console.WriteLine("[ShedulerReceiveStatusMeastaskSDR]:" + ex.Message); } }
void IAppServerComponent.Activate() { BaseXMLConfiguration xml_conf = new BaseXMLConfiguration(); GlobalInit.Initialization(); ClassesDBGetResult DbGetRes = new ClassesDBGetResult(); ClassConvertToSDRResults conv = new ClassConvertToSDRResults(); /// // Начальная инициализация (загрузка конфигурационных данных) /* * Task tt = new Task(() => { * System.Threading.Thread.CurrentThread.Priority = System.Threading.ThreadPriority.Normal; * if (GlobalInit.LST_MeasurementResults.Count == 0) { * MeasurementResults[] msResltConv = conv.ConvertTo_SDRObjects(DbGetRes.ReadlAllResultFromDB()); * if (msResltConv != null) { * foreach (MeasurementResults inb in msResltConv.ToArray()) { * GlobalInit.LST_MeasurementResults.Add(inb); * } * } * } * }); * tt.Start(); * tt.Wait(); */ Task tsg = new Task(() => { ClassesDBGetTasks cl = new ClassesDBGetTasks(); ClassConvertTasks ts = new ClassConvertTasks(); List <MeasTask> mts_ = ts.ConvertTo_MEAS_TASKObjects(cl.ReadlAllSTasksFromDB()).ToList(); foreach (MeasTask mtsd in mts_.ToArray()) { if (((GlobalInit.LIST_MEAS_TASK.Find(j => j.Id.Value == mtsd.Id.Value) == null))) { MeasTask fnd = GlobalInit.LIST_MEAS_TASK.Find(j => j.Id.Value == mtsd.Id.Value); if (fnd != null) { GlobalInit.LIST_MEAS_TASK.ReplaceAll <MeasTask>(fnd, mtsd); } else { GlobalInit.LIST_MEAS_TASK.Add(mtsd); } } } cl.Dispose(); ts.Dispose(); }); tsg.Start(); Sheduler_Up_Meas_SDR_Results Sc_Up_Meas_SDR = new Sheduler_Up_Meas_SDR_Results(); Sc_Up_Meas_SDR.ShedulerRepeatStart(BaseXMLConfiguration.xml_conf._TimeUpdateMeasResult); ShedulerReceiveStatusMeastaskSDR sc = new ShedulerReceiveStatusMeastaskSDR(); sc.ShedulerRepeatStart(BaseXMLConfiguration.xml_conf._TimeUpdateMeasTaskStatus); ShedulerCheckActivitySensor CheckActivitySensor = new ShedulerCheckActivitySensor(); CheckActivitySensor.ShedulerRepeatStart(BaseXMLConfiguration.xml_conf._RescanActivitySensor); ShedulerGetMeasTask getMeasTask = new ShedulerGetMeasTask(); getMeasTask.ShedulerRepeatStart(20); //Sheduler_ArchiveSDRResults arch_sdrRes = new Sheduler_ArchiveSDRResults(); arch_sdrRes.ShedulerRepeatStart(BaseXMLConfiguration.xml_conf._TimeArchiveResult); ShedulerCheckStart Quartz = new ShedulerCheckStart(); Quartz.ShedulerRepeatStart(BaseXMLConfiguration.xml_conf._ReloadStart); }