Exemplo n.º 1
0
        // выбор роли КДСа
        // для предопредл.роли отобразить флажки и дизаблить
        private void rbKDSMode_Checked(object sender, RoutedEventArgs e)
        {
            RadioButton rbChecked = (RadioButton)sender;
            KDSModeEnum kdsMode;

            if (Enum.TryParse <KDSModeEnum>(rbChecked.Tag.ToString(), out kdsMode))
            {
                KDSModeStates kdsStates = KDSModeHelper.DefinedKDSModes[kdsMode];
                // установить флажки состояний
                foreach (CheckBox item in pnlStates.Children.OfType <CheckBox>())
                {
                    OrderStatusEnum eStatus = (OrderStatusEnum)Convert.ToInt32(item.Tag);
                    item.IsChecked = (kdsStates.AllowedStates.Contains(eStatus));
                }

                // установить флажки действий
                KeyValuePair <OrderStatusEnum, OrderStatusEnum> kvp;
                foreach (CheckBox item in pnlActions.Children.OfType <CheckBox>())
                {
                    if (item.Tag != null)
                    {
                        kvp            = KDSModeHelper.GetStatusPairFromIntPair(item.Tag.ToString());
                        item.IsChecked = ((kvp.Key != OrderStatusEnum.None) && (kdsStates.AllowedActions.Contains(kvp)));
                    }
                }

                if (kdsMode == KDSModeEnum.Special)
                {
                    pnlStates.IsEnabled = true; pnlActions.IsEnabled = true;
                }
                else
                {
                    pnlStates.IsEnabled = false; pnlActions.IsEnabled = false;
                }
            }
        }  // method
Exemplo n.º 2
0
        }  // method

        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            //  *** получить напрямую новые значения  ***
            // новые значения из списков
            _cfgValKeeper.PutNewValueDirectly("depUIDs", getIsViewDepIds());

            // роль КДС из контролов
            KDSModeEnum eMode = getKDSModeFromRadioButtons();

            if (eMode != KDSModeEnum.None)
            {
                _cfgValKeeper.PutNewValueDirectly("KDSMode", eMode.ToString());
                string sStates, sActions;
                if (eMode == KDSModeEnum.Special)
                {
                    // получить новые объектные значения разрешений
                    List <OrderStatusEnum> newAllowedStates = getStatesFromCheckBoxes(pnlStates);
                    List <KeyValuePair <OrderStatusEnum, OrderStatusEnum> > newAllowedActions = getActionsFromCheckBoxes(pnlActions);
                    sStates = KDSModeHelper.StatesListToString(newAllowedStates); if (sStates == null)
                    {
                        sStates = "";
                    }
                    sActions = KDSModeHelper.ActionsListToString(newAllowedActions); if (sActions == null)
                    {
                        sActions = "";
                    }
                }
                else
                {
                    sStates = ""; sActions = "";
                }
                // записать их новые значения в кипер
                _cfgValKeeper.PutNewValueDirectly("KDSModeSpecialStates", sStates);
                _cfgValKeeper.PutNewValueDirectly("KDSModeSpecialActions", sActions);
            }

            _cfgValKeeper.PutNewValueDirectly("NewOrderAudioAttention", (string)cbxSelectAudio.SelectedValue);

            // *** получить новые значения из контролов  ***
            _cfgValKeeper.PutNewValueFromControls();

            // собрать словарь новых значений
            _appNewSettings = _cfgValKeeper.GetNewValuesDict();
            // сделаны ли какие-нибудь изменения?
            if (_appNewSettings.Count > 0)
            {
                string errMsg = null;
                string sBuf;
                if (CfgFileHelper.SaveAppSettings(_appNewSettings, out errMsg))  // сохранить в config-файле (все в символьном виде)
                {
                    // для объектов, взятых из AppProps, сохранить туда
                    _cfgValKeeper.SaveToAppProps();

                    // для некоторых значений может понадобиться преобразование типов для сохранения в App.Properties
                    if (_appNewSettings.ContainsKey("KDSMode") && (_appNewSettings["KDSMode"].IsNull() == false))
                    {
                        if (Enum.TryParse <KDSModeEnum>(_appNewSettings["KDSMode"], out eMode))
                        {
                            KDSModeHelper.CurrentKDSMode = eMode;
                        }
                    }
                    // особые состояния и действия хранятся не в App.Properties, а в четвертом элементе KDSModeStates и в config-e !!
                    if (_appNewSettings.ContainsKey("KDSModeSpecialStates"))
                    {
                        sBuf = _appNewSettings["KDSModeSpecialStates"];
                        KDSModeStates modeStates = KDSModeHelper.DefinedKDSModes[KDSModeEnum.Special];
                        modeStates.StringToAllowedStates(sBuf);
                        modeStates.CreateUserStateSets();
                    }
                    if (_appNewSettings.ContainsKey("KDSModeSpecialActions"))
                    {
                        sBuf = _appNewSettings["KDSModeSpecialActions"];
                        KDSModeHelper.DefinedKDSModes[KDSModeEnum.Special].StringToAllowedActions(sBuf);
                    }

                    MessageBox.Show("Настройки успешно сохранены в config-файле!", "Сохранение настроек в config-файле", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    MessageBox.Show("Ошибка сохранения настроек приложения:" + Environment.NewLine + "\t" + errMsg, "Сохранение настроек в config-файле", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }

            this.DialogResult = true;
        }
Exemplo n.º 3
0
        private void ConfigEdit_Loaded(object sender, RoutedEventArgs e)
        {
            if (_deps != null)
            {
                // контрол меняет значение поля IsViewOnKDS в _deps  !!!
                listBoxDepartments.ItemsSource = _deps.Values;
            }

            _cfgValKeeper.AddPreValue("depUIDs", false, null);
            _cfgValKeeper.AddPreValue("IsWriteTraceMessages", true, chkIsWriteTraceMessages);
            _cfgValKeeper.AddPreValue("IsLogUserAction", true, chkIsLogUserAction);
            _cfgValKeeper.AddPreValue("AppFontScale", false, tbFontSizeScale);
            _cfgValKeeper.AddPreValue("OrdersColumnsCount", true, tbxOrdersColumnsCount);
            _cfgValKeeper.AddPreValue("AutoReturnOrdersGroupByTime", false, tbTimerIntervalToOrderGroupByTime);
            _cfgValKeeper.AddPreValueDirectly("NewOrderAudioAttention", (string)cbxSelectAudio.SelectedValue);
            _cfgValKeeper.AddPreValue("OrderHeaderClickable", true, cbxOrderHeaderClickable);
            _cfgValKeeper.AddPreValue("IsIngredientsIndependent", true, cbxIngrClickable);
            _cfgValKeeper.AddPreValue("ShowTimerOnDependIngr", true, cbxIngrShowTimer);
            _cfgValKeeper.AddPreValue("IsShowOrderStatusByAllShownDishes", true, cbxShowOrderStatusByAllShownDishes);
            _cfgValKeeper.AddPreValue("IsMultipleStatusTabs", true, cbxMultipleStatusTabs);
            _cfgValKeeper.AddPreValue("IsDishGroupAndSumQuantity", true, cbxTabDishGroup);


            // получить от службы
            //AppDataProvider dataProvider = (AppDataProvider)AppLib.GetAppGlobalValue("AppDataProvider");
            //int expTake = dataProvider.GetExpectedTakeValue();
            //_cfgValKeeper.AddPreValueDirectly("ExpectedTake", expTake.ToString(), tbTimerExpectedTake);

            bool        isDefault = true;
            KDSModeEnum eMode     = KDSModeHelper.CurrentKDSMode;

            _cfgValKeeper.AddPreValueDirectly("KDSMode", eMode.ToString());  // прямое сохранение только в символьном виде

            if (KDSModeHelper.DefinedKDSModes.ContainsKey(eMode))
            {
                string sStates, sActions;
                if (eMode == KDSModeEnum.Special)
                {
                    KDSModeStates modeStates = KDSModeHelper.DefinedKDSModes[KDSModeEnum.Special];
                    sStates  = modeStates.AllowedStatesToString();
                    sActions = modeStates.AllowedActionsToString();
                }
                else
                {
                    sStates = ""; sActions = "";
                }
                _cfgValKeeper.AddPreValueDirectly("KDSModeSpecialStates", sStates);
                _cfgValKeeper.AddPreValueDirectly("KDSModeSpecialActions", sActions);

                isDefault = false;

                // чекнуть нужную кнопку
                foreach (RadioButton item in lbxKDSMode.Children.OfType <RadioButton>())
                {
                    if ((item.Tag != null) && (Convert.ToInt32(item.Tag) == (int)eMode))
                    {
                        item.IsChecked = true;
                    }
                    else
                    {
                        item.IsChecked = false;
                    }
                }
            }
            else
            {
                _cfgValKeeper.AddPreValueDirectly("KDSModeSpecialStates", "");
                _cfgValKeeper.AddPreValueDirectly("KDSModeSpecialActions", "");
            }

            // роль КДС по умолчанию
            if (isDefault)
            {
                _cfgValKeeper.AddPreValueDirectly("KDSMode", "");
                _cfgValKeeper.AddPreValueDirectly("KDSModeSpecialStates", "");
                _cfgValKeeper.AddPreValueDirectly("KDSModeSpecialActions", "");

                rbSpecial.IsChecked = true;
            }
        }