Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }