コード例 #1
0
ファイル: ServicioWeb.cs プロジェクト: jaespinol/DAMASCart
        public async Task GetNotifications()
        {
            Usuario userlast = null;

            try
            {
                Connection connection = new Connection();
                var        db         = connection.GetDataBase();
                userlast = db.Usuario.LastOrDefault();
            }
            catch
            {
            }
            if (userlast != null)
            {
                var client = new RestForms();
                NotificationsResult result = null;
                string url = "";
                if (userlast.IdPerfil == 1)
                {
                    url = $"{App.BaseUrl}/Notification/GetBouchers";
                }
                else if (userlast.IdPerfil == 4)
                {
                    url = $"{App.BaseUrl}/Notification/GetVerificados";
                }
                else if (userlast.IdPerfil == 2)
                {
                    url = $"{App.BaseUrl}/Notification/GetGuias/{userlast.IdUsuario}";
                }
                result = await client.Post <NotificationsResult>(url, new Dictionary <string, object>());

                ProcessNotificationsResult(result);
            }
        }
コード例 #2
0
        public async Task <NotificationsResult> GetUserNotifications(string session)
        {
            var userId = await GetUserFromSession(session);

            var result = new NotificationsResult()
            {
                Notifications = new List <NotificationModel>()
            };

            using (SqlConnection connection = new SqlConnection(
                       _connectionString))
            {
                SqlCommand commandDeatils = new SqlCommand($@"
SELECT TOP 50 Sn.id, Sn.fecha, Sn.titulo, Sn.mensaje, Sn.id_material, St.des_corta
FROM SUS_notificaciones Sn
LEFT JOIN SUS_titulosaudio St ON (St.id = Sn.id_suscripcion)
INNER JOIN SUS_audio Sa ON (Sa.id_titulo = St.id)
WHERE Sa.id_usuario = {userId}
ORDER BY Sn.fecha DESC",
                                                           connection);

                connection.Open();

                using SqlDataReader reader = await commandDeatils.ExecuteReaderAsync();

                while (reader.Read())
                {
                    result.Notifications.Add(new NotificationModel
                    {
                        Id        = Convert.ToInt32(reader[0]),
                        Date      = Convert.ToDateTime(reader[1]).ToString("d MMMM yyyy", CultureInfo.CreateSpecificCulture("es-ES")),
                        Title     = reader[2].ToString().Trim(),
                        Body      = reader[3].ToString().Trim(),
                        ContentId = reader[4].ToString().Trim(),
                        Code      = reader[5].ToString().Trim()
                    });
                }
            }

            return(result);
        }
コード例 #3
0
ファイル: ServicioWeb.cs プロジェクト: jaespinol/DAMASCart
 private void ProcessNotificationsResult(NotificationsResult result)
 {
     if (result != null)
     {
         if (result.Code == 100)
         {
             foreach (var ticket in result.Tickets)
             {
                 int idnotification = 0;
                 int.TryParse(ticket.IdTicket, out idnotification);
                 Notification.Builder builder = new Notification.Builder(_context)
                                                .SetContentTitle(App.AppName)
                                                .SetContentText(ticket.Message)
                                                .SetSmallIcon(Resource.Drawable.icon);
                 Notification        notification        = builder.Build();
                 NotificationManager notificationManager = _context.GetSystemService(Context.NotificationService) as NotificationManager;
                 notificationManager.Notify(App.AppName + "|" + idnotification, idnotification, notification);
             }
         }
     }
 }
コード例 #4
0
        public static List <NotificationsResult> FilterNotificationStats(IQueryable <PhoneNotification> phoneNotifications, GetSingleElementMetricRequest input)
        {
            var result = new List <NotificationsResult>();
            var list   = phoneNotifications.ToList();

            foreach (var phoneNotification in list)
            {
                if (phoneNotification == null)
                {
                    continue;
                }
                var phoneStatuses = phoneNotification.SendNotificationsStatuses;
                IEnumerable <SendNotificationsStatus> phoneStatusesList;
                if (input.EndDate.HasValue && input.StartDate.HasValue)
                {
                    phoneStatusesList = DateHelper <SendNotificationsStatus> .GetDateFilteredResult(phoneStatuses, input.StartDate.Value,
                                                                                                    input.EndDate.Value, input.ByDay);
                }
                else
                {
                    phoneStatusesList = phoneStatuses.ToList();
                }
                if (input.ByDay)
                {
                    var query = phoneStatusesList.GroupBy(a => new { a.CreationTime.Year, a.CreationTime.Month, a.CreationTime.Day })
                                .Select(i => new
                    {
                        i.Key.Year,
                        i.Key.Month,
                        i.Key.Day,
                        i
                    });

                    foreach (var element in query.ToList())
                    {
                        var metricsResult = new NotificationsResult
                        {
                            Date        = new DateTime(element.Year, element.Month, element.Day).ToString("dd-MMMM-yyyy"),
                            SeenCount   = element.i.Count(a => a.Readed),
                            UnseenCount = element.i.Count(a => !a.Readed)
                        };
                        result.Add(metricsResult);
                    }
                }
                else
                {
                    var query = phoneStatusesList.GroupBy(a => new { a.CreationTime.Year, a.CreationTime.Month })
                                .Select(i => new
                    {
                        i.Key.Year,
                        i.Key.Month,
                        i
                    });
                    foreach (var element in query.ToList())
                    {
                        var metricsResult = new NotificationsResult
                        {
                            Date        = new DateTime(element.Year, element.Month, 1).ToString("MMMM-yyyy"),
                            SeenCount   = element.i.Count(a => a.Readed),
                            UnseenCount = element.i.Count(a => !a.Readed && a.Sent),
                        };
                        result.Add(metricsResult);
                    }
                }
            }
            return(result);
        }