/// <summary> /// Envia una señal que indica que el servicio sigue en ejecución /// </summary> protected void SendAliveSignal() { if (!lastAliveSignal.HasValue || DateTime.Now > lastAliveSignal.Value.AddSeconds(20)) { AcademicoApiClient.GetInstance().ApiGet <object>("api/Sync/Alive", null); lastAliveSignal = DateTime.Now; } }
/// <summary> /// Consulta por las tareas a WebApi y las hace correr asincronicamente /// </summary> protected void RunTasks() { EventLog.WriteEntry("RunTasks", EventLogEntryType.Information); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/Sync/ParaEnviarAEnProceso", null); EventLog.WriteEntry("ParaEnviarAEnProceso", EventLogEntryType.Information); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/Sync/SincroFichadas", null); EventLog.WriteEntry("SincroFichadas", EventLogEntryType.Information); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/Sync/EnProcesoAEnviado", null); EventLog.WriteEntry("EnProcesoAEnviado", EventLogEntryType.Information); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/Sync/ParaEnviarAEnProcesoSNFichadas", null); EventLog.WriteEntry("ParaEnviarAEnProcesoSNFichadas", EventLogEntryType.Information); string toleranceString = ConfigurationManager.AppSettings["ToleranceInSeconds"]; string toleranciaEntradaString = ConfigurationManager.AppSettings["ToleranciaEntrada"]; string toleranciaSalidaString = ConfigurationManager.AppSettings["ToleranciaSalida"]; string acumulativasString = ConfigurationManager.AppSettings["Acumulativas"]; int toleranceSeconds = 0; if (!int.TryParse(toleranceString, out toleranceSeconds)) { toleranceSeconds = 120; } int toleranciaEntrada = 0; int.TryParse(toleranciaEntradaString, out toleranciaEntrada); int toleranciaSalida = 0; int.TryParse(toleranciaSalidaString, out toleranciaSalida); bool acumulativas = false; bool.TryParse(acumulativasString, out acumulativas); Dictionary <string, string> toleranceSecondsDic = new Dictionary <string, string>(); toleranceSecondsDic.Add("toleranceSeconds", toleranceSeconds.ToString()); toleranceSecondsDic.Add("toleranciaEntrada", toleranciaEntrada.ToString()); toleranceSecondsDic.Add("toleranciaSalida", toleranciaSalida.ToString()); toleranceSecondsDic.Add("toleranciaAcumuladaDisponible", acumulativas.ToString()); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/Sync/TransformarSNFichadasEnProceso", toleranceSecondsDic); EventLog.WriteEntry("TransformarSNFichadasEnProceso", EventLogEntryType.Information); }
protected override void OnStop() { try { EventLog.WriteEntry("OnStop", EventLogEntryType.Information); logger.Info("Deteniendo el servicio"); this.runTasks = false; AcademicoApiClient.GetInstance().Dispose(); base.OnStop(); } catch (Exception ex) { EventLog.WriteEntry(String.Concat("OnStop - ", ex.Message), EventLogEntryType.Error); logger.Error(ex); } }
/// <summary> /// Consulta por las tareas a WebApi y las hace correr asincronicamente /// </summary> protected void RunTasks() { EventLog.WriteEntry("RunTasks", EventLogEntryType.Information); string cicloParam = ConfigurationManager.AppSettings["Ciclo"]; string cuatrimestreParam = ConfigurationManager.AppSettings["Cuatrimestre"]; if (!string.IsNullOrEmpty(cicloParam)) { cicloParam = DateTime.Today.Year.ToString(); } if (!string.IsNullOrEmpty(cuatrimestreParam)) { cuatrimestreParam = DateTime.Today.Month.ToString(); } Dictionary <string, string> parametrosDic = new Dictionary <string, string>(); parametrosDic.Add("ciclo", cicloParam); parametrosDic.Add("cuatrimestre", cuatrimestreParam); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/MoodleSync/UpdateEnrolamiento", parametrosDic); EventLog.WriteEntry("UpdateEnrolamiento", EventLogEntryType.Information); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/MoodleSync/AltaCursos", null); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/MoodleSync/AltaGrupos", null); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/MoodleSync/AltaUsuarios", null); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/MoodleSync/AltaMatriculaciones", null); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/MoodleSync/AltaAgrupamientos", null); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/MoodleSync/BajaAgrupamientos", null); AcademicoApiClient.GetInstance().ApiGet <HttpResponseMessage>("api/MoodleSync/BajaMatriculaciones", null); //string moodleDirectoryString = ConfigurationManager.AppSettings["MoodleDirectory"]; //Process.Start(moodleDirectoryString); }