Esempio n. 1
0
        private void ViewModelOnAccountSuspended(Models.Session.SessionStatus sessionInfo)
        {
            if (GuiUtils.IsInvokedInGuiThread(this, () => UpdateSessionInfo(sessionInfo)))
            {
                return;
            }

            UpdateSessionInfo(sessionInfo);
        }
Esempio n. 2
0
        public static void Show(Models.Session.SessionStatus sessionInfo, string username)
        {
            if (__Instance == null || __Instance.IsLoaded == false)
            {
                __Instance = new SubscriptionExpireWindow();
            }

            if (string.IsNullOrEmpty(username))
            {
                username = "";
            }
            __Instance.Username = username;

            __Instance.SetSessionInfo(sessionInfo);
            __Instance.Show();
            if (__Instance.WindowState == WindowState.Minimized)
            {
                __Instance.WindowState = WindowState.Normal;
            }
        }
Esempio n. 3
0
        private void UpdateSessionInfo(Models.Session.SessionStatus sessionInfo)
        {
            if (GuiUtils.IsInvokedInGuiThread(this, () => UpdateSessionInfo(sessionInfo)))
            {
                return;
            }

            GuiAccountExpirationInfoButton.Visibility = Visibility.Hidden;
            if (sessionInfo == null)
            {
                return;
            }

            string text;
            Uri    imageUri;

            // update text
            if (!sessionInfo.IsActive)
            {
                text = StringUtils.String("Label_SubscriptionExpired");
                if (sessionInfo.IsOnFreeTrial)
                {
                    text = StringUtils.String("Label_FreeTrialExpired");
                }

                text += " " + StringUtils.String("Label_AccountExpiredUpgradeNow");

                imageUri = new Uri("pack://application:,,,/" +
                                   Assembly.GetExecutingAssembly().GetName().Name
                                   + ";component/Resources/iconStatusBad.png", UriKind.RelativeOrAbsolute);
            }
            else
            {
                // show nothing if account Renewable (WillAutoRebill)
                if (sessionInfo.WillAutoRebill)
                {
                    return;
                }

                int daysLeft = (int)(sessionInfo.ActiveUtil - DateTime.Now).TotalDays;
                if (daysLeft < 0)
                {
                    daysLeft = 0;
                }

                // do not show notification when more than 4 days left
                if (daysLeft >= 4)
                {
                    return;
                }

                if (daysLeft == 0)
                {
                    text = StringUtils.String("Label_AccountDaysLeft_LastDay");
                    if (sessionInfo.IsOnFreeTrial)
                    {
                        text = StringUtils.String("Label_FreeTrialDaysLeft_LastDay");
                    }
                }
                else if (daysLeft == 1)
                {
                    text = StringUtils.String("Label_AccountDaysLeft_OneDay");
                    if (sessionInfo.IsOnFreeTrial)
                    {
                        text = StringUtils.String("Label_FreeTrialDaysLeft_OneDay");
                    }
                }
                else
                {
                    text = StringUtils.String("Label_AccountDaysLeft_PARAMETRIZED");
                    if (sessionInfo.IsOnFreeTrial)
                    {
                        text = StringUtils.String("Label_FreeTrialDaysLeft_PARAMETRIZED");
                    }

                    text = string.Format(text, daysLeft);
                }

                imageUri = new Uri("pack://application:,,,/" +
                                   Assembly.GetExecutingAssembly().GetName().Name
                                   + ";component/Resources/iconStatusModerate.png", UriKind.RelativeOrAbsolute);
            }

            GuiAccountExpirationInfoText.Text    = text;
            GuiAccountExpirationInfoImage.Source = new BitmapImage(imageUri);

            // set notification visible
            GuiAccountExpirationInfoButton.Visibility = Visibility.Visible;
        }
Esempio n. 4
0
        private void SetSessionInfo(Models.Session.SessionStatus accountInfo)
        {
            Session = accountInfo;

            string title;
            string titleDays = "";

            string text;

            string renewButtonText = StringUtils.String("Button_RenewSubscription");

            if (Session.IsOnFreeTrial)
            {
                renewButtonText = StringUtils.String("Button_GetSubscription");
            }

            int progressDaysLeft = 0;

            if (!Session.IsActive)
            {
                title = StringUtils.String("Label_SubscriptionExpired");
                if (Session.IsOnFreeTrial)
                {
                    title = StringUtils.String("Label_FreeTrialExpired");
                }

                text = StringUtils.String("Label_AccountDaysLeftDescription_Expired");
                if (Session.IsOnFreeTrial)
                {
                    text = StringUtils.String("Label_TrialDaysLeftDescription_Expired");
                }
            }
            else
            {
                int daysLeft = (int)(Session.ActiveUtil - DateTime.Now).TotalDays;
                if (daysLeft < 0)
                {
                    daysLeft = 0;
                }

                progressDaysLeft = daysLeft;

                if (daysLeft == 0)
                {
                    title = StringUtils.String("Label_AccountDaysLeftTitle_LastDay");
                    if (Session.IsOnFreeTrial)
                    {
                        title = StringUtils.String("Label_TrialDaysLeftTitle_LastDay");
                    }

                    text = StringUtils.String("Label_AccountDaysLeftDescription_LastDay");
                    if (Session.IsOnFreeTrial)
                    {
                        text = StringUtils.String("Label_TrialDaysLeftDescription_LastDay");
                    }

                    titleDays = StringUtils.String("Days_Today");
                }
                else if (daysLeft == 1)
                {
                    title = StringUtils.String("Label_AccountDaysLeftTitle_OneDay");
                    if (Session.IsOnFreeTrial)
                    {
                        title = StringUtils.String("Label_TrialDaysLeftTitle_OneDay");
                    }

                    text = StringUtils.String("Label_AccountDaysLeftDescription_OneDay");
                    if (Session.IsOnFreeTrial)
                    {
                        text = StringUtils.String("Label_TrialDaysLeftDescription_OneDay");
                    }

                    titleDays = StringUtils.String("Days_OneDay");
                }
                else
                {
                    title = StringUtils.String("Label_AccountDaysLeftTitle_PARAMETRIZED");
                    if (Session.IsOnFreeTrial)
                    {
                        title = StringUtils.String("Label_TrialDaysLeftTitle_PARAMETRIZED");
                    }

                    text = StringUtils.String("Label_TrialDaysLeftDescription_PARAMETRIZED");
                    if (Session.IsOnFreeTrial)
                    {
                        text = StringUtils.String("Label_AccountDaysLeftDescription_PARAMETRIZED");
                    }

                    titleDays = StringUtils.String("Days_Days_PARAMETRIZED");
                    titleDays = string.Format(titleDays, daysLeft);

                    text = string.Format(text, daysLeft);
                }
            }

            GuiTitle.Text           = title;
            GuiTitleDaysLeft.Text   = " " + titleDays;
            GuiText.Text            = text;
            GuiRenewButtonText.Text = renewButtonText;

            GuiProgressBar.Minimum = 0;
            GuiProgressBar.Maximum = 4;
            if (progressDaysLeft > GuiProgressBar.Maximum)
            {
                progressDaysLeft = (int)GuiProgressBar.Maximum;
            }
            GuiProgressBar.Value = GuiProgressBar.Maximum - progressDaysLeft;
        }