Esempio n. 1
0
        internal NotificationButton(INotificationController controller, INotificationInfo info)
        {
            this.controller = controller;

            InitializeComponent();
            InitializeNotificationIcon(info);
        }
 public ShellOperation(
     IActionCenter actionCenter,
     IAudio audio,
     INotificationInfo aboutInfo,
     INotificationController aboutController,
     ClientContext context,
     IKeyboard keyboard,
     ILogger logger,
     INotificationInfo logInfo,
     INotificationController logController,
     IPowerSupply powerSupply,
     ISystemInfo systemInfo,
     ITaskbar taskbar,
     ITaskview taskview,
     IText text,
     IUserInterfaceFactory uiFactory,
     IWirelessAdapter wirelessAdapter) : base(context)
 {
     this.aboutInfo       = aboutInfo;
     this.aboutController = aboutController;
     this.actionCenter    = actionCenter;
     this.audio           = audio;
     this.keyboard        = keyboard;
     this.logger          = logger;
     this.logInfo         = logInfo;
     this.logController   = logController;
     this.powerSupply     = powerSupply;
     this.systemInfo      = systemInfo;
     this.text            = text;
     this.taskbar         = taskbar;
     this.taskview        = taskview;
     this.uiFactory       = uiFactory;
     this.wirelessAdapter = wirelessAdapter;
 }
        public void NotifyTeacher(int groupId, INotificationInfo notificationInfo)
        {
            var teacherId = _groupRepository.GetGroupById(groupId).Members.Find
                                (m => m.MemberRole.Equals(MemberRole.Teacher)).UserId;

            NotifySubscriber(teacherId, notificationInfo);
        }
 private void SendNotificationToChat(INotificationInfo notificationInfo, Group group)
 {
     using (var chat = new ChatSession(group))
     {
         chat.SendGroupMessage(notificationInfo);
     }
 }
        private void NotifyOnMail(User user, INotificationInfo notificationInfo)
        {
            var messageContent   = _messageMapper.MapNotification(notificationInfo, user.UserProfile.Name);
            var notificationType = notificationInfo.GetNotificationType();

            _sender.SendMessage(user.UserProfile.Email, messageContent, _messageThemes[notificationType]);
        }
Esempio n. 6
0
        internal int SendGroupMessage(INotificationInfo notificationInfo)
        {
            var message = new GroupMessage(notificationInfo);

            _messages.Add(message);

            return(message.Id);
        }
Esempio n. 7
0
 public GroupMessageResponse(int id, DateTimeOffset sentOn, MessageType messageType,
                             INotificationInfo notificationInfo)
 {
     Id               = id;
     SentOn           = sentOn;
     MessageType      = messageType;
     NotificationInfo = notificationInfo;
 }
        public void NotifyGroup(int groupId, INotificationInfo notificationInfo)
        {
            var currentGroup = _groupRepository.GetGroupById(groupId);

            currentGroup.Members.ToList().ForEach(m => NotifySubscriber(m.UserId, notificationInfo));
            SendNotificationToChat(notificationInfo, currentGroup);
            _groupRepository.Update(currentGroup);
        }
 public void NotifyAdmins(INotificationInfo notificationInfo)
 {
     _userRepository.GetAll().Where(u => u.Type.Equals(UserType.Admin)).ToList().ForEach(u =>
     {
         NotifyOnMail(u, notificationInfo);
         NotifyOnSite(u, notificationInfo);
     });
 }
Esempio n. 10
0
        public void Notify(INotificationInfo message)
        {
            _growlNotifications.AddNotification(message);
            if (!message.IsKeepInCentral)
            {
                return;
            }

            Notifications.Insert(0, message);
        }
Esempio n. 11
0
        public virtual void SendNotification()
        {
            INotificationInfo notificationInfo = GetNotificationInfo();
            IEnumerable <INotificationInfo> notificationInfos = new[] { notificationInfo };

            NotificationInfoUtilities.GetUsers(ref notificationInfos, UserConnection);
            var notificationSender = ClassFactory.Get <INotificationSender>(
                new ConstructorArgument("userConnection", UserConnection));

            notificationSender.Send(notificationInfos);
        }
 public INotificationControl CreateNotificationControl(INotificationInfo info, Location location)
 {
     if (location == Location.ActionCenter)
     {
         return(new ActionCenterNotificationButton(info));
     }
     else
     {
         return(new TaskbarNotificationButton(info));
     }
 }
        protected IEnumerable <INotificationInfo> ExecuteNotificationInfoReader(Select select)
        {
            var result = new List <INotificationInfo>();

            using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection()) {
                using (IDataReader reader = select.ExecuteReader(dbExecutor)) {
                    while (reader.Read())
                    {
                        Dictionary <string, string> dictionaryColumnValues = GetColumnsValues(reader, select);
                        INotificationInfo           rowNotificationInfo    = GetRecordNotificationInfo(dictionaryColumnValues);
                        result.Add(rowNotificationInfo);
                    }
                }
            }
            return(result);
        }
        internal void RemoveNotification(INotificationInfo notification)
        {
            //if (Notifications.Contains(notification))
            Notifications.Remove(notification);

            if (_buffer.Count > 0)
            {
                Notifications.Add(_buffer[0]);
                _buffer.RemoveAt(0);
            }

            //Close window if there's nothing to show
            if (Notifications.Count < 1)
            {
                Hide();
            }
        }
        public bool Remove(INotificationInfo item)
        {
            var group = GetOrAddGroup(item);

            if (group == null)
            {
                return(false);
            }
            var val = group.Notifications.Remove(item);

            if (group.Notifications.Count == 0)
            {
                Remove(group);
            }

            return(val);
        }
        public void AddNotification(INotificationInfo notification)
        {
            CalculatePosition();

            if (Notifications.Count + 1 > MaxNotifications)
            {
                _buffer.Add(notification);
            }
            else
            {
                Notifications.Add(notification);
            }

            //Show window if there're notifications
            if (Notifications.Count > 0 && !IsActive)
            {
                Show();
            }
        }
Esempio n. 17
0
        private void SendPushNotification(INotificationInfo info)
        {
            PushNotification pushNotification = GetPushNotification();
            var    additionalData             = new Dictionary <string, string>();
            string messageId      = info.MessageId.ToString();
            Guid   sysAdminUnit   = info.SysAdminUnit;
            string sysAdminUnitId = sysAdminUnit.ToString();

            if (!GetIsMessageSent(messageId, sysAdminUnitId, info.RemindTime))
            {
                additionalData.Add("entityName", info.EntitySchemaName);
                additionalData.Add("recordId", info.EntityId.ToString());
                additionalData.Add("messageId", messageId);
                DateTime remindTime = info.RemindTime;
                additionalData.Add("remindTime", remindTime.ToString(@"dd.MM.yyyy HH:mm"));
                pushNotification.Send(sysAdminUnit, info.Title, info.Body, additionalData);
                SaveMessageInHistory(messageId, sysAdminUnitId, remindTime);
            }
        }
        private GroupNotificationInfo GetOrAddGroup(INotificationInfo item)
        {
            if (item == null)
            {
                return(null);
            }
            var group =
                this.FirstOrDefault(
                    g => string.Compare(g.Title, item.GroupTitle, StringComparison.OrdinalIgnoreCase) == 0);

            if (group != null)
            {
                return(group);
            }

            group = new GroupNotificationInfo {
                Title = item.GroupTitle
            };
            Add(group);
            return(group);
        }
        private void NotifySubscriber(int userId, INotificationInfo notificationInfo)
        {
            var user     = _userRepository.GetUserById(userId);
            var settings = user.NotificationsSettings.Settings;

            var doesSubscribedOnSite =
                settings[notificationInfo.GetNotificationType()].Equals(NotificationValue.OnSite) ||
                settings[notificationInfo.GetNotificationType()].Equals(NotificationValue.Everywhere);
            var doesSubscribedOnMail =
                settings[notificationInfo.GetNotificationType()].Equals(NotificationValue.ToMail) ||
                settings[notificationInfo.GetNotificationType()].Equals(NotificationValue.Everywhere);

            if (doesSubscribedOnSite)
            {
                NotifyOnSite(user, notificationInfo);
            }

            if (doesSubscribedOnMail)
            {
                NotifyOnMail(user, notificationInfo);
            }
        }
 public ShellOperation(
     IActionCenter actionCenter,
     IEnumerable <IActionCenterActivator> activators,
     ActionCenterSettings actionCenterSettings,
     IAudio audio,
     INotificationInfo aboutInfo,
     INotificationController aboutController,
     IKeyboard keyboard,
     ILogger logger,
     INotificationInfo logInfo,
     INotificationController logController,
     IPowerSupply powerSupply,
     ISystemInfo systemInfo,
     ITaskbar taskbar,
     TaskbarSettings taskbarSettings,
     ITerminationActivator terminationActivator,
     IText text,
     IUserInterfaceFactory uiFactory,
     IWirelessAdapter wirelessAdapter)
 {
     this.aboutInfo            = aboutInfo;
     this.aboutController      = aboutController;
     this.actionCenter         = actionCenter;
     this.activators           = activators;
     this.actionCenterSettings = actionCenterSettings;
     this.audio                = audio;
     this.keyboard             = keyboard;
     this.logger               = logger;
     this.logInfo              = logInfo;
     this.logController        = logController;
     this.powerSupply          = powerSupply;
     this.systemInfo           = systemInfo;
     this.taskbarSettings      = taskbarSettings;
     this.terminationActivator = terminationActivator;
     this.text            = text;
     this.taskbar         = taskbar;
     this.uiFactory       = uiFactory;
     this.wirelessAdapter = wirelessAdapter;
 }
Esempio n. 21
0
 public ShellOperation(
     IActionCenter actionCenter,
     IEnumerable <IActionCenterActivator> activators,
     ActionCenterSettings actionCenterSettings,
     ILogger logger,
     INotificationInfo aboutInfo,
     INotificationController aboutController,
     INotificationInfo logInfo,
     INotificationController logController,
     ISystemComponent <ISystemKeyboardLayoutControl> keyboardLayout,
     ISystemComponent <ISystemPowerSupplyControl> powerSupply,
     ISystemComponent <ISystemWirelessNetworkControl> wirelessNetwork,
     ISystemInfo systemInfo,
     ITaskbar taskbar,
     TaskbarSettings taskbarSettings,
     ITerminationActivator terminationActivator,
     IText text,
     IUserInterfaceFactory uiFactory)
 {
     this.aboutInfo            = aboutInfo;
     this.aboutController      = aboutController;
     this.actionCenter         = actionCenter;
     this.activators           = activators;
     this.actionCenterSettings = actionCenterSettings;
     this.logger               = logger;
     this.logInfo              = logInfo;
     this.logController        = logController;
     this.keyboardLayout       = keyboardLayout;
     this.powerSupply          = powerSupply;
     this.systemInfo           = systemInfo;
     this.taskbarSettings      = taskbarSettings;
     this.terminationActivator = terminationActivator;
     this.text            = text;
     this.taskbar         = taskbar;
     this.uiFactory       = uiFactory;
     this.wirelessNetwork = wirelessNetwork;
 }
Esempio n. 22
0
 public Notification(INotificationInfo notificationInfo)
 {
     OccurredOn       = DateTimeOffset.Now;
     NotificationInfo = JsonConvert.SerializeObject(notificationInfo);
     NotificationType = notificationInfo.GetNotificationType();
 }
 public INotificationControl CreateNotificationControl(INotificationController controller, INotificationInfo info, Location location)
 {
     if (location == Location.ActionCenter)
     {
         return(new Controls.ActionCenter.NotificationButton(controller, info));
     }
     else
     {
         return(new Controls.Taskbar.NotificationButton(controller, info));
     }
 }
Esempio n. 24
0
 public GroupMessage(INotificationInfo notificationInfo, int id, DateTimeOffset sentOn)
     : base(id, sentOn)
 {
     NotificationType = notificationInfo.GetNotificationType();
     NotificationInfo = JsonConvert.SerializeObject(notificationInfo);
 }
Esempio n. 25
0
 public GroupMessage(INotificationInfo notificationInfo)
 {
     SentOn           = DateTimeOffset.UtcNow;
     NotificationType = notificationInfo.GetNotificationType();
     NotificationInfo = JsonConvert.SerializeObject(notificationInfo);
 }
Esempio n. 26
0
 private void InitializeNotificationIcon(INotificationInfo info)
 {
     IconButton.ToolTip = info.Tooltip;
     IconButton.Content = IconResourceLoader.Load(info.IconResource);
 }
        public void Add(INotificationInfo item)
        {
            var group = GetOrAddGroup(item);

            group?.Notifications.Add(item);
        }
        public void Insert(int index, INotificationInfo item)
        {
            var group = GetOrAddGroup(item);

            group?.Notifications.Insert(index, item);
        }
 public ActionCenterNotificationButton(INotificationInfo info)
 {
     InitializeComponent();
     InitializeNotificationIcon(info);
 }
 public virtual GroupNotificationInfo GetGroupInfo(INotificationInfo item)
 => GetOrAddGroup(item);