Beispiel #1
0
 public MensajeDto CrearMensaje(MensajeDto mensajeDto)
 {
     using (TransactionScope ts = new TransactionScope())
     {
         using (var ctx = new FacturaElectronicaEntities())
         {
             Mensaje mensaje = new Mensaje();
             ToMensaje(mensajeDto, mensaje);
             MensajeCliente mensajeCliente = null;
             foreach (var clienteDto in mensajeDto.Clientes)
             {
                 Cliente cliente = this.ObtenerCliente(ctx, clienteDto.Id);
                 mensajeCliente = new MensajeCliente()
                 {
                     Mensaje = mensaje,
                     Cliente = cliente,
                     Leido   = false
                 };
                 mensaje.MensajeClientes.Add(mensajeCliente);
             }
             mensaje.FechaDeCarga = DateTime.Now;
             ctx.Mensajes.AddObject(mensaje);
             ctx.SaveChanges();
             ts.Complete();
             mensajeDto.Id = mensaje.Id;
         }
         return(mensajeDto);
     }
 }
Beispiel #2
0
 public void MarcarComoLeido(long mensajeId, long clienteId)
 {
     using (var ctx = new FacturaElectronicaEntities())
     {
         MensajeCliente mensajeCliente = ctx.MensajeClientes.Where(mc => mc.MensajeId == mensajeId && mc.ClienteId == clienteId).Single();
         mensajeCliente.Leido = true;
         ctx.SaveChanges();
     }
 }
Beispiel #3
0
        /// <summary>
        /// Monitorea las notificaciones
        /// </summary>
        /// <seealso cref="https://documentation.onesignal.com/docs/xamarin-sdk#section--notificationreceived-"/>
        public void Init()
        {
            //Handle when your app starts
            OneSignal.Current.IdsAvailable(async(playerID, pushToken) =>
            {
                await operacionesBL.RegistrarDispositivoAsync(new Dispositivo
                {
                    Id              = Guid.Parse(Settings.Current.LoginInfo.Usr.Id),
                    Modelo          = Settings.Current.ModeloDispositivo,
                    SO              = Settings.Current.SO,
                    TipoDispositivo = Settings.Current.TipoDispositivo,
                    TipoUsuario     = (int)TipoUsuarioEnum.Cliente,
                    VercionApp      = !string.IsNullOrEmpty(Settings.Current.VersionApp) ? Settings.Current.VersionApp : "0",
                    TimeZona        = "-28800",
                    PlayerId        = playerID
                });
            });

            //Inicializa la subscripción
            OneSignal.Current.StartInit(MPS.Core.Lib.Helpers.AppSettingsManager.Settings["PushNotificationAppID"])
            .InFocusDisplaying(Com.OneSignal.Abstractions.OSInFocusDisplayOption.Notification)
            .HandleNotificationReceived((notification) =>
            {
                var mensaje = new MensajeCliente(notification.payload.additionalData);
                DelegarAccionDeNotificacion(mensaje);
            }).HandleNotificationOpened((notification) =>
            {
                var mensaje = new MensajeCliente(notification.notification.payload.additionalData);
                if (mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.SocioAcepta) || mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.Finalizado))
                {
                    MPS.Core.Lib.Helpers.Settings.Current.ServicioSolicitado = new ServicioSolicitado
                    {
                        ActualLat         = mensaje.ActualLat,
                        CalificacionSocio = mensaje.CalificacionSocio,
                        ClaveTipoServicio = mensaje.ClaveTipoServicio,
                        FechaSolicitud    = mensaje.FechaSolicitud,
                        FolioSolicitud    = mensaje.FolioSolicitud,
                        IdSocio           = mensaje.IdSocio,
                        IdSolicitud       = mensaje.IdSolicitud,
                        IdTipoSolicitud   = mensaje.IdTipoSolicitud,
                        NombreServicio    = mensaje.NombreServicio,
                        NombreSocio       = mensaje.NombreSocio,
                        TipoServicio      = mensaje.TipoServicio,
                        TipoNotificacion  = mensaje.TipoNotificacion
                    };
                }
                else if (mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.EstatusPago))
                {
                    Settings.Current.EstatusPago = new EstatusPago
                    {
                        Banco             = mensaje.Banco,
                        NoAutorizacion    = mensaje.NoAutorizacion,
                        NoTarjeta         = mensaje.NoTarjeta,
                        Monto             = mensaje.Monto,
                        Descripcion       = mensaje.Descripcion,
                        ClaveTipoServicio = mensaje.ClaveTipoServicio,
                        NombreServicio    = mensaje.NombreServicio,
                        Codigo            = mensaje.Codigo,
                        Status            = mensaje.Status
                    };
                }
            })
            .HandleInAppMessageClicked((notification) =>
            {
            }).EndInit();
        }
Beispiel #4
0
        public void DelegarAccionDeNotificacion(MensajeCliente mensaje)
        {
            NotificationReceived?.Invoke(this, mensaje);
            var paginaSolicitarServicio = typeof(SolicitarServicio);
            var paginaActual            = App.Current.MainPage.Navigation.NavigationStack[App.Current.MainPage.Navigation.NavigationStack.Count - 1];

            if (paginaActual.GetType() == paginaSolicitarServicio)
            {
                var dtx = paginaActual.BindingContext as Core.Lib.ViewModels.Clientes.SolicitudDeServicioViewModel;
                if (mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.SocioAcepta))
                {
                    dtx.MostrarModalSolicitudCommand.Execute(new ServicioSolicitado
                    {
                        ActualLat         = mensaje.ActualLat,
                        CalificacionSocio = mensaje.CalificacionSocio,
                        ClaveTipoServicio = mensaje.ClaveTipoServicio,
                        FechaSolicitud    = mensaje.FechaSolicitud,
                        FolioSolicitud    = mensaje.FolioSolicitud,
                        IdSocio           = mensaje.IdSocio,
                        IdSolicitud       = mensaje.IdSolicitud,
                        IdTipoSolicitud   = mensaje.IdTipoSolicitud,
                        NombreServicio    = mensaje.NombreServicio,
                        NombreSocio       = mensaje.NombreSocio,
                        TipoServicio      = mensaje.TipoServicio
                    });
                }
                else if (mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.Finalizado))
                {
                    dtx.AbrirModalCalificarCommand.Execute(mensaje.IdSolicitud);
                }
                else if (mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.EstatusPago))
                {
                    dtx.MostrarModalEstatusPagoCommand.Execute(new EstatusPago
                    {
                        Banco             = mensaje.Banco,
                        NoAutorizacion    = mensaje.NoAutorizacion,
                        NoTarjeta         = mensaje.NoTarjeta,
                        Monto             = mensaje.Monto,
                        Descripcion       = mensaje.Descripcion,
                        ClaveTipoServicio = mensaje.ClaveTipoServicio,
                        NombreServicio    = mensaje.NombreServicio,
                        Codigo            = mensaje.Codigo,
                        Status            = mensaje.Status
                    });
                }
            }
            else
            {
                if (mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.SocioAcepta) || mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.Finalizado))
                {
                    Settings.Current.ServicioSolicitado = new ServicioSolicitado
                    {
                        ActualLat         = mensaje.ActualLat,
                        CalificacionSocio = mensaje.CalificacionSocio,
                        ClaveTipoServicio = mensaje.ClaveTipoServicio,
                        FechaSolicitud    = mensaje.FechaSolicitud,
                        FolioSolicitud    = mensaje.FolioSolicitud,
                        IdSocio           = mensaje.IdSocio,
                        IdSolicitud       = mensaje.IdSolicitud,
                        IdTipoSolicitud   = mensaje.IdTipoSolicitud,
                        NombreServicio    = mensaje.NombreServicio,
                        NombreSocio       = mensaje.NombreSocio,
                        TipoServicio      = mensaje.TipoServicio
                    };
                }
                else if (mensaje.TipoNotificacion.Equals((int)TipoNotificacionEnum.EstatusPago))
                {
                    Settings.Current.EstatusPago = new EstatusPago
                    {
                        Banco             = mensaje.Banco,
                        NoAutorizacion    = mensaje.NoAutorizacion,
                        NoTarjeta         = mensaje.NoTarjeta,
                        Monto             = mensaje.Monto,
                        Descripcion       = mensaje.Descripcion,
                        ClaveTipoServicio = mensaje.ClaveTipoServicio,
                        NombreServicio    = mensaje.NombreServicio,
                        Codigo            = mensaje.Codigo,
                        Status            = mensaje.Status
                    };
                }
            }
        }