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); } }
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); }
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); } } } }
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); }