private void ConfiguringNotificationsClick(object sender, EventArgs e)
        {
            // в строках ниже из AccountEventCode формируется Dictionary из локализованных строк,
            // а затем эти строки обратно преобразуются в AccountEventCode
            var pageState = currentMessageCodes.Distinct().ToDictionary(x => (object)EnumFriendlyName <AccountEventCode> .GetString(x), x =>
            {
                AccountEventSettings accountEventSettings;
                try
                {
                    accountEventSettings = UserSettings.Instance.AccountEventAction.Single(y => y.EventCode == x);
                }
                catch (Exception ex)
                {
                    Logger.Error("ConfiguringNotificationsClick()", ex);
                    return(true);
                }
                return(accountEventSettings.EventAction != AccountEventAction.DoNothing);
            });

            if (CheckedListBoxDialog.Show(pageState, this,
                                          Localizer.GetString("TitleCustomizeNotifications")) != DialogResult.OK)
            {
                return;
            }

            foreach (var state in pageState)
            {
                AccountEventCode accountEventCode;
                try
                {
                    accountEventCode = EnumItem <AccountEventCode> .items.Single(x => EnumFriendlyName <AccountEventCode> .GetString(x.Value) == (string)state.Key).Value;
                }
                catch (Exception ex)
                {
                    Logger.Error("ConfiguringNotificationsClick()", ex);
                    continue;
                }

                var updateAction = UserSettings.Instance.AccountEventAction.FirstOrDefault(a => a.EventCode == accountEventCode);
                if (updateAction == null)
                {
                    continue;
                }
                updateAction.EventAction = state.Value ? AccountEventAction.DefaultAction : AccountEventAction.DoNothing;
            }
            UserSettings.Instance.SaveSettings();
        }
Beispiel #2
0
        private void BtnSetupClick(object sender, EventArgs e)
        {
            var pageState = new Dictionary <object, bool>();

            foreach (var code in NavPanelPageControl.pageCodes)
            {
                var title    = NavPanelPageControl.pageTitles[code];
                var pageCode = code;
                var isShown  = pages.Any(p => p.Code == pageCode);
                pageState.Add(title, isShown);
            }

            if (CheckedListBoxDialog.Show(pageState, GetParentForm(Parent), "Закладки") != DialogResult.OK)
            {
                return;
            }
            var pagesToShow = new List <string>();

            foreach (var page in pageState)
            {
                if (!page.Value)
                {
                    continue;
                }
                var pageTitle = (string)page.Key;
                var pageCode  = NavPanelPageControl.pageTitles.First(p => p.Value == pageTitle);
                pagesToShow.Add(pageCode.Key);
            }

            if (pagesToShow.Count == 0)
            {
                return;
            }
            SetupPages(pagesToShow.ToArray());

            // сохранить закладки
            SavePagesToShow();
        }