예제 #1
0
 private void executeEditCommand(object obj)
 {
     if (obj == null)
     {
         return;
     }
     Mediator.Broadcast(Constants.ShowAddEditView, obj);
 }
예제 #2
0
        private void NotificationForDelayAndInterval(double interval, Task task)
        {
            var timer = TimerService.instance.ScheduleTaskForInterval(task.DesiredDateTime, interval, () =>
            {
                Mediator.Broadcast(Constants.FireNotification, task);
                RemoveFromNotifyListIfNeeded(task);
            });

            _remindersNotificationList[task.Id] = timer;
            task.NotificationOn = true;
        }
예제 #3
0
        private void NotifyForSchedule(Task task)
        {
            var timer = TimerService.instance.ScheduleTaskFromNow(1, 0, () =>
            {
                Mediator.Broadcast(Constants.FireNotification, task);
                RemoveFromNotifyListIfNeeded(task);
            });

            _schedulesNotificationList[task.Id] = timer;
            task.NotificationOn = true;
        }
예제 #4
0
        private void executeAddCommand(object obj)
        {
            //adding logic
            NewTask.DesiredDateTime = NewTask.DesiredDateTime.AddHours(DesiredHour);
            NewTask.DesiredDateTime = NewTask.DesiredDateTime.AddMinutes(DesiredMinute);

            if (ReminderSelected)
            {
                if (!((Reminder)NewTask).ShouldRepeat)
                {
                    // ((Reminder)NewTask).RepeatingDays.RemoveRange(0, ((Reminder)NewTask).RepeatingDays.Count);
                }

                if (((Reminder)NewTask).Type == Reminder.ReminderType.IsFromSavedTime)
                {
                    NewTask.DesiredDateTime = DateTime.Now.AddHours(DesiredHour).AddMinutes(DesiredMinute);
                }
                if (((Reminder)NewTask).Type == Reminder.ReminderType.IsAtSetInterval)
                {
                    NewTask.DesiredDateTime = DateTime.Today.AddHours(DesiredHour).AddMinutes(DesiredMinute);
                }
                if (((Reminder)NewTask).Type == Reminder.ReminderType.IsAtSpecificTime)
                {
                    NewTask.DesiredDateTime = DateTime.Today.AddHours(DesiredHour).AddMinutes(DesiredMinute);
                }

                if (IsEditing)
                {
                    _notificationManager.EditReminder((Reminder)NewTask);
                }
                else
                {
                    _notificationManager.CreateReminder((Reminder)NewTask);
                }
            }
            else
            {
                if (IsEditing)
                {
                    _notificationManager.EditSchedule((Schedule)NewTask);
                }
                else
                {
                    _notificationManager.CreateSchedule((Schedule)NewTask);
                }
            }

            NewTask          = new Task();
            DesiredHour      = 0;
            DesiredMinute    = 0;
            IsEditing        = false;
            ReminderSelected = false;
            Mediator.Broadcast(Constants.ShowListView);
        }
예제 #5
0
        public NavigationViewModel(IDatabaseManager databaseManager)
        {
            _databaseManager     = databaseManager;
            _notificationManager = new NotificationManager(new ReminderRepository(_databaseManager), new ScheduleRepository(_databaseManager));

            ViewModels.Add(new ScheduleListViewModel(_notificationManager));
            ViewModels.Add(new ChoiceViewModel(_notificationManager));
            ViewModels.Add(new AddEditViewModel(_notificationManager));

            Mediator.Subscribe(Constants.ShowListView, ShowListView);
            Mediator.Subscribe(Constants.ShowAddEditView, ShowAddEditView);
            Mediator.Subscribe(Constants.ShowChoiceView, ShowChoiceView);
            Mediator.Subscribe(Constants.FireNotification, FireNotification);

            Mediator.Broadcast(Constants.TasksUpdated);

            CurrentViewModel = ViewModels.First();
        }
예제 #6
0
        public override async Task Receive(NetworkMessage message)
        {
            await Task.Delay(500);

            var payload  = message.Read();
            var sendTime = message.GetTimestamp();

            Logger.LogInfo($"[{Handle}] <--- Received Message {payload} at ({sendTime})", ConsoleColor.DarkCyan);
            if (payload.Contains("thanks bikes"))
            {
                var returnMessage = new NetworkMessage("OK! 🚀");
                returnMessage.Sign(this);
                await Mediator.Broadcast(returnMessage);
            }

            if (payload.Contains("where are you"))
            {
                await SignalLocation();
            }
        }
예제 #7
0
        public MainWindow()
        {
            InitializeComponent();



            var iconStream = System.Windows.Application.GetResourceStream(new Uri("pack://application:,,,/Images/icon.png")).Stream;
            var iconBitmap = new Bitmap(iconStream);

            NotifyIcon notifyIcon = new NotifyIcon
            {
                Icon    = System.Drawing.Icon.FromHandle(iconBitmap.GetHicon()),
                Visible = true
            };

            notifyIcon.DoubleClick += delegate
            {
                this.Show();
                this.WindowState = WindowState.Normal;
            };

            System.Windows.Forms.ContextMenu cm = new System.Windows.Forms.ContextMenu();

            cm.MenuItems.Add("Show Reminder/Schedule List", (s, e) =>
            {
                Mediator.Broadcast(Constants.ShowListView);
                this.Show();
                this.WindowState = WindowState.Normal;
            });
            cm.MenuItems.Add("Exit", (s, e) =>
            {
                System.Windows.Application.Current.Shutdown();
                notifyIcon.Visible = false;
                notifyIcon.Dispose();
            });

            notifyIcon.ContextMenu = cm;
        }
예제 #8
0
 private void executeNewTaskCommand(object obj)
 {
     Mediator.Broadcast(Constants.ShowChoiceView);
 }
예제 #9
0
 public void Say(int n)
 {
     mediator.Broadcast(n, this);
 }
예제 #10
0
 private void executeRemindercommand(object obj)
 {
     Mediator.Broadcast(Constants.ShowAddEditView, true);
 }
예제 #11
0
 private void executeScheduleCommand(object obj)
 {
     Mediator.Broadcast(Constants.ShowAddEditView, false);
 }
예제 #12
0
 private void executeBackCommand(object obj)
 {
     Mediator.Broadcast(Constants.ShowListView);
 }
 public void Say(int n)
 {
     mediator.Broadcast(this, n);
 }