Ejemplo n.º 1
0
        public TimeAndPlace GetWakeUpHour()
        {
            var TimeReveil = new TimeAndPlace();
            List <EventnTraffic> ListEvent = Events.DynamicValue.ToObject <List <EventnTraffic> >();

            foreach (var evenement in ListEvent)
            {
                if (DateTime.Now < DateTime.Parse(evenement.DateDebut))
                {
                    PackageHost.WriteInfo("Le prochain évènement est le {0}", evenement.DateDebut.ToString());
                    TimeReveil.Time = DateTime.Parse(evenement.DateDebut);
                    try
                    {
                        TimeReveil.TimeTraffic = TimeSpan.Parse(evenement.TimeTrafficFromHouse.ToString());
                        TimeReveil.Place       = evenement.Lieu;
                    }
                    catch
                    {
                        var title = "Absence lieu pour le lendemain";
                        var body  = "Aucun lieu n'a été enregistré pour demain, le temps de trajet ne sera pas pris en compte";
                        PackageHost.SendMessage(MessageScope.Create("PushBullet"), "PushNote", new object[] { title as System.String, body as System.String });
                        TimeReveil.TimeTraffic = new TimeSpan();
                    }
                    return(TimeReveil);
                }
            }
            return(TimeReveil);
        }
Ejemplo n.º 2
0
        public void ModeAuto()
        {
            TimeAndPlace WakeUp = GetWakeUpHour();
            TimeSpan     prep_time = new TimeSpan();
            string       title, body;

            try
            {
                prep_time = new TimeSpan(0, int.Parse(PackageHost.GetSettingValue("TpsPrep")), 0);
            }
            catch
            {
                prep_time = new TimeSpan(0, 45, 0);
                PackageHost.WriteWarn("Paramètre du temps de préparation non récupéré, le temps de 45mn sera considéré");
            }
            Alarme NewAlarm = new Alarme();

            NewAlarm.IsRinging      = false;
            NewAlarm.TimeFirstEvent = WakeUp.Time.ToString();

            if (WakeUp.Time.Subtract(DateTime.Now) < new TimeSpan(1, 0, 0, 0)) //Si le réveil doit sonner dans + de 24h on active pas encore l'alarme et on attends le refresh journalier
            {
                if (WakeUp.TimeTraffic != new TimeSpan())
                {
                    WakeUp.Time           = WakeUp.Time.Subtract(prep_time + WakeUp.TimeTraffic);
                    NewAlarm.TimeTraffic  = WakeUp.TimeTraffic.ToString();
                    NewAlarm.AlarmHour    = WakeUp.Time.Hour;
                    NewAlarm.AlarmMinutes = WakeUp.Time.Minute;
                    title = "Alarme en mode automatique";
                    body  = string.Format("L'alarme sonnera à {0}:{1}", NewAlarm.AlarmHour.ToString("00"), NewAlarm.AlarmMinutes.ToString("00"));
                    PackageHost.SendMessage(MessageScope.Create("PushBullet"), "PushNote", new object[] { title as System.String, body as System.String });
                    ChangeAlarm(NewAlarm);
                    return;
                }
                else
                {
                    title = "Erreur temps de trajet";
                    body  = "Impossible de récuperer le temps de trajet, le temps de trajet ne sera pas pris en compte";
                    PackageHost.SendMessage(MessageScope.Create("PushBullet"), "PushNote", new object[] { title as System.String, body as System.String });
                    WakeUp.Time           = WakeUp.Time.Subtract(prep_time);
                    NewAlarm.AlarmHour    = WakeUp.Time.Hour;
                    NewAlarm.AlarmMinutes = WakeUp.Time.Minute;
                    NewAlarm.TimeTraffic  = new TimeSpan().ToString();
                    ChangeAlarm(NewAlarm);
                    return;
                }
            }
            else
            {
                PackageHost.WriteInfo("Pas de réveil automatique prévu d'ici les 24h prochaines heures !");
            }
        }