Пример #1
0
        /// <summary>
        /// Notifies all clients of the supplied relaxed policy.Debugrmation.
        /// </summary>
        /// <param name="numPoliciesAvailable">
        /// The number of relaxed policy uses available.
        /// </param>
        /// <param name="policyDuration">
        /// The duration of the relaxed policies.
        /// </param>
        /// <param name="isActive">
        /// Whether or not the relaxed policy is currently active.
        /// </param>
        /// <param name="command">
        /// The relaxed policy command which caused this notification to happen.
        /// If == RelaxedPolicyCommand.Info, ignore.
        /// </param>
        public void NotifyRelaxedPolicyChange(int numPoliciesAvailable, TimeSpan policyDuration, RelaxedPolicyStatus status, string bypassMessage = null)
        {
            var nfo = new RelaxedPolicyInfo(policyDuration, numPoliciesAvailable, status);
            var msg = new RelaxedPolicyMessage(RelaxedPolicyCommand.Info, null, bypassMessage, nfo);

            PushMessage(msg);
        }
Пример #2
0
        private void ShowRelaxedPolicyMessage(RelaxedPolicyMessage msg, bool fromTray)
        {
            string title   = "Relaxed Policy";
            string message = "";

            switch (msg.PolicyInfo.Status)
            {
            case RelaxedPolicyStatus.Activated:
                message = null;
                break;

            case RelaxedPolicyStatus.Granted:
                message = "Relaxed Policy Granted";
                break;

            case RelaxedPolicyStatus.AllUsed:
                message = "All of your relaxed policies are used up for today.";
                break;

            case RelaxedPolicyStatus.AlreadyRelinquished:
                message = "Relaxed policy not currently active.";
                break;

            case RelaxedPolicyStatus.Deactivated:
                message = null;
                break;

            case RelaxedPolicyStatus.Relinquished:
                message = null;
                break;

            default:
                message = null;
                break;
            }

            if (fromTray)
            {
                if (message != null)
                {
                    app.TrayIconController.ShowNotification(title, message);
                }
            }
            else
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    if (message != null)
                    {
                        // TODO: ShowUserMessage modal.
                    }
                });
            }
        }
Пример #3
0
        private void ShowRelaxedPolicyMessage(RelaxedPolicyMessage msg, bool fromTray)
        {
            string title   = "Relaxed Policy";
            string message = "";

            switch (msg.PolicyInfo.Status)
            {
            case RelaxedPolicyStatus.Activated:
                message = null;
                break;

            case RelaxedPolicyStatus.Granted:
                message = "Relaxed Policy Granted";
                break;

            case RelaxedPolicyStatus.AllUsed:
                message = "All of your relaxed policies are used up for today.";
                break;

            case RelaxedPolicyStatus.AlreadyRelinquished:
                message = "Relaxed policy not currently active.";
                break;

            case RelaxedPolicyStatus.Deactivated:
                message = null;
                break;

            case RelaxedPolicyStatus.Relinquished:
                message = null;
                break;

            default:
                message = null;
                break;
            }

            if (fromTray)
            {
                if (message != null)
                {
                    m_trayIcon.ShowBalloonTip(3000, title, message, System.Windows.Forms.ToolTipIcon.Info);
                }
            }
            else
            {
                Dispatcher.InvokeAsync(() =>
                {
                    if (message != null)
                    {
                        m_mainWindow.ShowUserMessage(title, message, "OK");
                    }
                });
            }
        }
Пример #4
0
        public void RelaxedPolicyInfoReceived(RelaxedPolicyMessage args)
        {
            Device.BeginInvokeOnMainThread(() =>
            {
                var viewModel = app.ModelManager.GetModel <RelaxedPolicyViewModel>();

                if (viewModel != null && args.PolicyInfo != null)
                {
                    viewModel.AvailableRelaxedRequests = args.PolicyInfo.NumberAvailableToday;
                    viewModel.RelaxedDuration          = new DateTime(args.PolicyInfo.RelaxDuration.Ticks).ToString("HH:mm");

                    viewModel.RelaxedPolicyRequested -= OnRelaxedPolicyRequested;
                    viewModel.RelaxedPolicyRequested += OnRelaxedPolicyRequested;

                    viewModel.RelinquishRelaxedPolicyRequested -= OnRelinquishRelaxedPolicyRequested;
                    viewModel.RelinquishRelaxedPolicyRequested += OnRelinquishRelaxedPolicyRequested;
                }
            });
        }
Пример #5
0
        public void RelinquishRelaxedPolicy()
        {
            var msg = new RelaxedPolicyMessage(RelaxedPolicyCommand.Relinquished);

            PushMessage(msg);
        }
Пример #6
0
        public void RequestRelaxedPolicy()
        {
            var msg = new RelaxedPolicyMessage(RelaxedPolicyCommand.Requested);

            PushMessage(msg);
        }
Пример #7
0
 /// <summary>
 /// Constructs a new RelaxedPolicyEventArgs from the given client message.
 /// </summary>
 /// <param name="msg">
 /// The client message.
 /// </param>
 public RelaxedPolicyEventArgs(RelaxedPolicyMessage msg) : this(msg.Command, msg.Passcode)
 {
 }
Пример #8
0
        public void RequestRelaxedPolicy(string passcode)
        {
            var msg = new RelaxedPolicyMessage(RelaxedPolicyCommand.Requested, passcode);

            PushMessage(msg);
        }
Пример #9
0
 /// <summary>
 /// Constructs a new RelaxedPolicyEventArgs from the given client message.
 /// </summary>
 /// <param name="msg">
 /// The client message.
 /// </param>
 public RelaxedPolicyEventArgs(RelaxedPolicyMessage msg)
 {
     Command = msg.Command;
 }