/// <summary> /// Notificación de asignación de vale de diesel y depósito de anticipos /// </summary> /// <param name="id_movimiento_asignacion_recurso">Id de Asignanción de Recurso</param> /// <param name="tipo">Tipo de actualización</param> ///<param name="fecha">Fecha Depósito o Fecha de Carga</param> ///<param name="cantidad">Cantidad Depositada o Litro</param> /// <returns></returns> public RetornoOperacion NotificacionDepositoAnticiposYDiesel(int id_movimiento_asignacion_recurso, TipoNotificacionServicio tipo, DateTime fecha, decimal cantidad) { //Inicializando variables auxiliares string tokenFCM = ""; int idCompania = 0, idRecurso = 0, idServicio = 0; MovimientoAsignacionRecurso.Tipo tipoRecurso = MovimientoAsignacionRecurso.Tipo.Operador; //Validando que la asignación pertenezca a un servicio RetornoOperacion resultado = validaMovimientoServicio(id_movimiento_asignacion_recurso, out idServicio); //Si es de un servicio if (resultado.OperacionExitosa) { //Obtención de token al que se enviará la notificación resultado = validaUsuarioSesionActivaRecurso(id_movimiento_asignacion_recurso, out idCompania, out idRecurso, out tipoRecurso, out tokenFCM); //Si hay datos suficientes if (resultado.OperacionExitosa) { //Validando configuración de notificaciones resultado = CompaniaEmisorReceptor.ValidaConfiguracionUsoAplicacionMovil(idCompania); //Si se configuró el uso de aplicación móvil if (resultado.OperacionExitosa) { //Determinando el tipo de actualización realizada switch (tipo) { case TipoNotificacionServicio.Diesel: var datos = new { Titulo = "¡Vale de diesel asignado!", Mensaje = string.Format("{0:f2} litros, Carga el {1:dd/MM/yyyy HH:mm}", cantidad, fecha), IdServicio = idServicio, TipoNotificacion = "NDiesel" }; //Enviando mensaje vía FCM resultado = FirebaseCloudNotifications.EnviaMensajeFCM(_url_servidor_fcm, _server_token_fcm, tokenFCM, FirebaseCloudNotifications.Prioridad.Normal, datos); break; case TipoNotificacionServicio.AnticipoDepositado: var datos1 = new { Titulo = "¡Depósito de anticipo confirmado!", Mensaje = string.Format("{0:c}, a las {1:dd/MM/yyyy HH:mm}", cantidad, fecha), IdServicio = idServicio, TipoNotificacion = "NDeposito" }; //Enviando mensaje vía FCM resultado = FirebaseCloudNotifications.EnviaMensajeFCM(_url_servidor_fcm, _server_token_fcm, tokenFCM, FirebaseCloudNotifications.Prioridad.Normal, datos1); break; } } } } //Devolviendo resultado return(resultado); }
/// <summary> /// Notificación de cambios en alguna parada de servicio asignado (cambio de citas, nueva parada y eliminar parada) /// </summary> /// <param name="id_movimiento_asignacion_recurso">Id de Asignanción de Recurso</param> /// <param name="tipo">Tipo de actualización</param> /// <returns></returns> public RetornoOperacion ActualizaInformacionServicio(int id_movimiento_asignacion_recurso, TipoNotificacionServicio tipo) { //Inicializando variables auxiliares string tokenFCM = ""; int idCompania = 0, idRecurso = 0; MovimientoAsignacionRecurso.Tipo tipoRecurso = MovimientoAsignacionRecurso.Tipo.Operador; //Validando que la asignación pertenezca a un servicio RetornoOperacion resultado = validaMovimientoServicio(id_movimiento_asignacion_recurso); //Si es de un servicio if (resultado.OperacionExitosa) { //Obtención de token al que se enviará la notificación resultado = validaUsuarioSesionActivaRecurso(id_movimiento_asignacion_recurso, out idCompania, out idRecurso, out tipoRecurso, out tokenFCM); //Si hay datos suficientes if (resultado.OperacionExitosa) { //Validando configuración de notificaciones resultado = CompaniaEmisorReceptor.ValidaConfiguracionUsoAplicacionMovil(idCompania); //Si se configuró el uso de aplicación móvil if (resultado.OperacionExitosa) { //Determinando el tipo de actualización realizada switch (tipo) { case TipoNotificacionServicio.NParadaServActual: var datos = new { Titulo = "¡Parada añadida al viaje actual!", Mensaje = "El viaje en curso fue modificado, consulte los detalles.", TipoNotificacion = "NParada" }; //Enviando mensaje vía FCM resultado = FirebaseCloudNotifications.EnviaMensajeFCM(_url_servidor_fcm, _server_token_fcm, tokenFCM, FirebaseCloudNotifications.Prioridad.Normal, datos); break; case TipoNotificacionServicio.EParadaServActual: var datos1 = new { Titulo = "¡Parada eliminada del viaje actual!", Mensaje = "El viaje en curso fue modificado, consulte los detalles.", TipoNotificacion = "EParada" }; //Enviando mensaje vía FCM resultado = FirebaseCloudNotifications.EnviaMensajeFCM(_url_servidor_fcm, _server_token_fcm, tokenFCM, FirebaseCloudNotifications.Prioridad.Normal, datos1); break; case TipoNotificacionServicio.AParadaServActual: var datos2 = new { Titulo = "¡Parada modificada en viaje actual!", Mensaje = "El viaje en curso fue modificado, consulte los detalles.", TipoNotificacion = "AParada" }; //Enviando mensaje vía FCM resultado = FirebaseCloudNotifications.EnviaMensajeFCM(_url_servidor_fcm, _server_token_fcm, tokenFCM, FirebaseCloudNotifications.Prioridad.Normal, datos2); break; case TipoNotificacionServicio.ActualizacionServicio: var datos3 = new { Titulo = "¡Viaje pendiente actualizado!", Mensaje = "Un viaje asignado fue modificado, consulte los detalles.", TipoNotificacion = "AAsignacion" }; //Enviando mensaje vía FCM resultado = FirebaseCloudNotifications.EnviaMensajeFCM(_url_servidor_fcm, _server_token_fcm, tokenFCM, FirebaseCloudNotifications.Prioridad.Normal, datos3); break; } } } } //Devolviendo resultado return(resultado); }