public static void sendNotifications()
        {
            //Remove
            UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests();

            MyEventEntries myEvents = new MyEventEntries();

            myEvents.loadJson(loadMyDatabase());
            DateTime currentTime = DateTime.Now;

            foreach (EventEntry tempEvent in myEvents.Events)
            {
                // Rebuild notification
                var content = new UNMutableNotificationContent();
                content.Title = "Event: " + tempEvent.Title + " starting soon";
                content.Body  = "Starts at " + tempEvent.StartTime.ToString("h:mm tt") + "\nLocation: " + tempEvent.Location;
                content.Badge = 1;

                // New trigger time
                // var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(5, false);
                var trigger = UNCalendarNotificationTrigger.CreateTrigger(DateTimeToNSDate(tempEvent.StartTime), false);
                // ID of Notification to be updated
                var requestID = tempEvent.EventID;
                var request   = UNNotificationRequest.FromIdentifier(requestID, content, trigger);

                // Add to system to modify existing Notification
                UNUserNotificationCenter.Current.AddNotificationRequest(request, (err) => {
                    if (err != null)
                    {
                        // Do something with error...
                    }
                });
            }
        }
Ejemplo n.º 2
0
        private void checkEvents()
        {
            MyEventEntries           myEvents = new MyEventEntries();
            PushNotificationsAndroid push     = new PushNotificationsAndroid();

            myEvents.loadJson(loadMyDatabase());
            DateTime          currentTime = DateTime.Now;
            List <EventEntry> temp        = new List <EventEntry>();

            foreach (EventEntry tempEvent in myEvents.Events)
            {
                int timeInterval = 15;
                int day          = tempEvent.StartTime.Day;
                int month        = tempEvent.StartTime.Month;
                int year         = tempEvent.StartTime.Year;

                if (day == currentTime.Day && month == currentTime.Month && year == currentTime.Year)
                {
                    int hour      = tempEvent.StartTime.Hour;
                    int minute    = tempEvent.StartTime.Minute + hour * 60;
                    int minuteNow = currentTime.Minute + currentTime.Hour * 60;
                    if (minute - minuteNow < timeInterval && minute - minuteNow > 0)
                    {
                        temp.Add(tempEvent);
                    }
                }
            }
            if (temp.Count > 1)
            {
                string tempString = string.Empty;
                foreach (EventEntry tempEvent in temp)
                {
                    tempString += tempEvent.Title + "\n";
                }
                push.SendPush(temp.Count + " Events coming up in the next 15 minutes", tempString, this);
            }

            else if (temp.Count == 1)
            {
                push.SendPush("Event: " + temp[0].Title + " starting soon", "Starts at " + temp[0].StartTime.ToString("h:mm tt") + "\nLocation: " + temp[0].Location, this);
            }
        }