コード例 #1
0
        public ActionResult Insert(VMNotificacion model)
        {
            var result = new Resultado();

            try
            {
                if (string.IsNullOrEmpty(model.Notificacion.Titulo))
                {
                    return(View(model));
                }

                var paginateParams = new PaginateParams
                {
                    IsPaginate = false, PageIndex = 0, RowsPerPage = 0, SortColumn = "", SortDirection = ""
                };

                Usuario _Filtro = new Usuario
                {
                    CategoriaId    = model.Usuario.CategoriaId,
                    EspecialidadId = model.Usuario.EspecialidadId,
                    Filtro         = !string.IsNullOrEmpty(model.Usuario.Filtro)? model.Usuario.Filtro : ""
                };

                List <Usuario> listaUsuarios = _NotificacionService.List_Notificacion_Paginate(paginateParams, _Filtro);

                List <String> listDevice = new List <String>();

                foreach (var item in listaUsuarios.Where(x => x.DeviceToken != ""))
                {
                    listDevice.Add(item.DeviceToken);
                }

                List <String> listEmail = new List <String>();
                foreach (var item in listaUsuarios.Where(x => x.CorreoElectronico != ""))
                {
                    listEmail.Add(item.CorreoElectronico);
                }


                if (model.Notificacion.EnviarEmail == 1)
                {
                    try
                    {
                        var emailLogic = new EmailLogic();
                        emailLogic.SendNotificaion(listEmail, model.Notificacion.Titulo, model.Notificacion.Subtitulo);
                        PostMessage(MessageType.Success, "Correo Electronico enviado satisfactoriamente");
                    }
                    catch (Exception ex)
                    {
                        PostMessage(MessageType.Info, "No se pudo realizar el envio de los correos.");
                    }
                }

                if (model.Notificacion.EnviarCelular == 1)
                {
                    var fireBaseNotification = new FirebaseLogic();
                    var response2            = fireBaseNotification.EnviarNotificacionMBG(listDevice, model.Notificacion.Titulo, model.Notificacion.Subtitulo, String.Empty, String.Empty);
                    // var response2 = fireBaseNotification.SendNotification(listDevice, model.Notificacion.Titulo, model.Notificacion.Subtitulo, String.Empty, String.Empty);

                    PostMessage(MessageType.Success, "Se enviaron notificaciones a " + response2.success + " usuarios.");
                }

                var Resultado = _NotificacionService.Insert(model.Notificacion);
                result.Codigo = Resultado.IDNotificacion;
            }
            catch (System.Exception ex)
            {
                result.EsExito = false;
                result.Mensaje = ex.Message;
                return(View());
            }
            return(Json(result));
        }