Beispiel #1
0
        private void toastNotificationsTask_Activated_1(object sender, DevExpress.XtraBars.ToastNotifications.ToastNotificationEventArgs e)
        {
            string guid = (string)e.NotificationID;

            if (NotificationsTask.ContainsKey(guid))
            {
                Task task = NotificationsTask[guid];
                NotificationsTask.Remove(guid);

                FormTaskMain frmtask = new FormTaskMain(task);
                frmtask.Show();
            }
        }
Beispiel #2
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();
            var Baza = new AbacusSUPEntities();

            List <Task> stara_lista = Main_lista.OrderByDescending(qq => qq.datum).ToList();
            List <Task> nova_lista  = Baza.Task.OrderByDescending(qq => qq.datum).ToList();
            //var razlika = nova_lista.Except(stara_lista).ToList();
            var razlika = nova_lista.Where(qq => qq.datum > stara_lista.Max(ww => ww.datum)).ToList();

            if (stara_lista.Count == 0 && nova_lista.Count > 0)
            {
                razlika.AddRange(nova_lista);
            }
            if (razlika.Count > 0)
            {
                //gridControl1.DataSource = Baza.Task.OrderByDescending(qq => qq.datum).ToList();
                Main_lista.Clear();
                Main_lista.AddRange(nova_lista);
                taskBindingSource.DataSource = Main_lista.OrderByDescending(qq => qq.datum);
                gridView1.RefreshData();

                List <VezaLT> listaveza = Baza.VezaLT.ToList();

                foreach (Task novi in razlika)
                {
                    stara_lista.Add(novi); // dodaj u staru listu

                    if (listaveza.Where(qq => qq.id_task == novi.id_task && qq.id_login == OperaterLogin.operater.id) != null)
                    {
                        if (OperaterLogin.operater.Podesavanja.novitask_notif && novi.Login.id != OperaterLogin.operater.id && OperaterLogin.NotifOverride)  // ako su podesavanja ispravna i operater razlicit od logovanog
                        {
                            //toastNotificationsTask.Activated += (ss, ee) =>         //NOVO**
                            //{
                            //    //FormTaskMain frmtm = new FormTaskMain(novi);
                            //    //frmtm.Show();

                            //    MessageBox.Show("Task notifikacija kliknuta! \n " + "Elemenata u listi razlika" + razlika.Count.ToString() + "\n Task trenutno: " + novi.naslov + "\nTask ID:" + novi.id_task.ToString());
                            //};

                            string guid         = Guid.NewGuid().ToString();
                            var    notification = new DevExpress.XtraBars.ToastNotifications.ToastNotification()
                            {
                                ID    = guid,
                                Body  = novi.Login.username + " je otvorio novi task, " + novi.naslov + "!",
                                Sound = DevExpress.XtraBars.ToastNotifications.ToastNotificationSound.IM,
                            };
                            //notification.Image = notification.AppLogoImage;
                            NotificationsTask.Add(guid, novi);
                            toastNotificationsTask.Notifications.Add(notification);
                            toastNotificationsTask.ShowNotification(notification);

                            //toastNotificationsTask.Notifications[0].Body = novi.Login.username + " je otvorio novi task, " + novi.naslov + "!";
                            //toastNotificationsTask.ShowNotification(toastNotificationsTask.Notifications[0]);
                        }
                        if (this.WindowState == FormWindowState.Minimized && OperaterLogin.operater.Podesavanja.minimize_tray)
                        {
                            this.notifyIcon1.Visible            = false;
                            this.notifyIconNotifikacija.Visible = true;
                        }

                        //toastNotificationsManager1.ShowNotification(toastNotificationsManager1.Notifications[0]);
                        FlashWindowEx(this);
                    }
                }
                razlika.Clear();
            }
            //Baza.SaveChanges();

            Baza = new AbacusSUPEntities();

            List <Komentar> nova_kom_lista = Baza.Komentar.ToList();

            var razlika_kom = nova_kom_lista.Where(qq => qq.datum > OperaterLogin.stara_kom_lista.Max(ww => ww.datum)).ToList();

            if (OperaterLogin.stara_kom_lista.Count == 0 && nova_kom_lista.Count > 0)
            {
                razlika_kom.AddRange(nova_kom_lista);
            }
            if (razlika_kom.Count > 0)
            {
                List <VezaLT> listaveza = Baza.VezaLT.ToList();

                foreach (Komentar novi in razlika_kom)
                {
                    OperaterLogin.stara_kom_lista.Add(novi); //dodaj aktuelni komentar u staru listu

                    if (listaveza.Where(qq => qq.id_task == novi.id_task && qq.id_login == OperaterLogin.operater.id) != null)
                    {
                        if (OperaterLogin.operater.Podesavanja.novikom_notif && OperaterLogin.operater.id != novi.Login.id && OperaterLogin.NotifOverride) // ako podesavanj dozvoljavaju i ako je komentar od operatera koji nije trenutno logovan
                        {
                            string guid         = Guid.NewGuid().ToString();
                            var    notification = new DevExpress.XtraBars.ToastNotifications.ToastNotification()
                            {
                                ID    = guid,
                                Body  = novi.Login.username + " je dodao novi komentar na task, " + novi.Task.naslov + "!",
                                Sound = DevExpress.XtraBars.ToastNotifications.ToastNotificationSound.IM,
                            };
                            //notification.Image = notification.AppLogoImage;
                            NotificationsKomentar.Add(guid, novi);
                            toastNotificationsKomentar.Notifications.Add(notification);
                            toastNotificationsKomentar.ShowNotification(notification);
                        }
                        if (this.WindowState == FormWindowState.Minimized && OperaterLogin.operater.Podesavanja.minimize_tray)
                        {
                            this.notifyIcon1.Visible            = false;
                            this.notifyIconNotifikacija.Visible = true;
                        }


                        //toastNotificationsManager1.ShowNotification(toastNotificationsManager1.Notifications[0]);
                        FlashWindowEx(this);
                    }
                }
                razlika_kom.Clear();
            }
            timer1.Interval = (1000) * (15);             // Timer will tick evert 10 seconds
            timer1.Enabled  = true;                      // Enable the timer
            timer1.Start();
        }