public static void readAppDataFromDB() { MessageListener.Instance.ReceiveMessage("Получаю из MS SQL главное меню..."); AppLib.WriteLogTraceMessage("Получаю из MS SQL главное меню..."); MenuLib.MenuFolderHandler = (folderName) => MessageListener.Instance.ReceiveMessage($"Получаю блюда раздела '{folderName}'..."); List <AppModel.MenuItem> newMenu = MenuLib.GetMenuMainFolders(); if (newMenu == null) { AppLib.WriteLogErrorMessage("Fatal error: Ошибка создания Главного Меню. Меню не создано. Аварийное завершение приложения."); MessageBox.Show("Ошибка создания меню\nПрограмма будет закрыта."); throw new Exception("Ошибка создания меню"); } // сохранить Главное Меню в свойствах приложения List <AppModel.MenuItem> mainMenu = (List <AppModel.MenuItem>)AppLib.GetAppGlobalValue("mainMenu"); if (mainMenu != null) { mainMenu.Clear(); } mainMenu = newMenu; AppLib.SetAppGlobalValue("mainMenu", mainMenu); AppLib.WriteLogTraceMessage("Получаю из MS SQL главное меню... - READY"); }
// преобразование строки цветов (R,G,B) в SolidColorBrush private static void convertAppColor(string setName) { var buf = AppLib.GetAppGlobalValue(setName); if ((buf is string) == false) { return; } // если цвет задан строкой string sBuf = (string)buf; string[] sRGB = sBuf.Split(','); byte r = 0, g = 0, b = 0; byte.TryParse(sRGB[0], out r); byte.TryParse(sRGB[1], out g); byte.TryParse(sRGB[2], out b); SolidColorBrush brush = new SolidColorBrush(new Color() { A = 255, R = r, G = g, B = b }); AppLib.SetAppGlobalValue(setName, brush); }
public static void OnClosingApp() { UserActionsLog actionIdle = (UserActionsLog)AppLib.GetAppGlobalValue("actionIdle"); if (actionIdle != null) { actionIdle.FinishLoggingUserActions(); } }
public static string GetImageFullFileName(string fileName) { if (string.IsNullOrEmpty(fileName)) { return(null); } string cfgValue = (string)AppLib.GetAppGlobalValue("ImagesPath"); return(AppEnvironment.GetFullFileName(cfgValue, fileName)); }
public static string GetCostUIText(decimal cost) { string orderPriceText = cost.ToString("0"); string currencyChar = AppLib.GetAppGlobalValue("CurrencyChar") as string; if (currencyChar != null) { orderPriceText += " " + currencyChar; } return(orderPriceText); }
} // method #endregion // текст на элементе промокода public static void SetPromocodeTextStyle(TextBlock txtInput) { if (string.IsNullOrEmpty(App.PromocodeNumber)) { txtInput.Text = AppLib.GetLangTextFromAppProp("invitePromoText"); txtInput.Style = (Style)App.Current.Resources["promoInviteTextStyle"]; txtInput.FontSize = (double)AppLib.GetAppGlobalValue("appFontSize5"); } else { txtInput.Text = App.PromocodeNumber; txtInput.Style = (Style)App.Current.Resources["promoCodeTextStyle"]; txtInput.FontSize = (double)AppLib.GetAppGlobalValue("appFontSize4"); } }
// установка цвета ресурса приложения (Application.Resources) в цвет из свойств приложения (Application.Properties) private static void checkAppColor(string setName) { SolidColorBrush bRes = (SolidColorBrush)Application.Current.Resources[setName]; if (bRes == null) { return; } SolidColorBrush bProp = (SolidColorBrush)AppLib.GetAppGlobalValue(setName); if (bRes.Color.Equals(bProp.Color) == false) // если не равны { Application.Current.Resources[setName] = bProp; // то переопределить ресурсную кисть } }
public static void CreateChoiceBox() { MsgBoxExt chBox = new MsgBoxExt() { TitleFontSize = (double)AppLib.GetAppGlobalValue("appFontSize6"), MessageFontSize = (double)AppLib.GetAppGlobalValue("appFontSize2"), ButtonFontSize = (double)AppLib.GetAppGlobalValue("appFontSize4"), MsgBoxButton = MessageBoxButton.YesNo, ButtonForeground = Brushes.White, ButtonBackground = (Brush)AppLib.GetAppGlobalValue("appBackgroundColor"), ButtonBackgroundOver = (Brush)AppLib.GetAppGlobalValue("appBackgroundColor"), CloseByButtonPress = false }; AppLib.ChoiceWindow = chBox; }
public static OrderItem CreateNewOrder() { string deviceName = (string)AppLib.GetAppGlobalValue("ssdID", string.Empty); int rndFrom = int.Parse(AppLib.GetAppSetting("RandomOrderNumFrom")); // случайный номер заказа: От int rndTo = int.Parse(AppLib.GetAppSetting("RandomOrderNumTo")); // случайный номер заказа: До OrderItem order = new OrderItem() { DeviceID = deviceName, RangeOrderNumberFrom = rndFrom, RangeOrderNumberTo = rndTo }; DateTime?dtOrder; // создать случайный номер заказа и получить дату заказа из БД order.CreateOrderNumberForPrint(out dtOrder); // order.OrderDate = dtOrder; App.OrderNumber = order.OrderNumberForPrint.ToString(); // сохранить ссылку на новый заказ в глоб.перем. AppLib.SetAppGlobalValue("currentOrder", order); // и в Главном окне MainWindow mainWin = (App.Current.MainWindow as MainWindow); mainWin.CurrentOrder = order; string logMsg = "Создан новый заказ № '" + App.OrderNumber + "'"; if (dtOrder != null) { logMsg += " от " + ((DateTime)dtOrder).ToString("yyyy-MM-dd HH:mm:ss"); } AppLib.WriteAppAction(logMsg); return(order); }
private static void calculateAppSizes() { double dVar; double screenWidth, screenHeight; screenWidth = (double)AppLib.GetAppGlobalValue("screenWidth"); screenHeight = (double)AppLib.GetAppGlobalValue("screenHeight"); AppLib.WriteLogTraceMessage(string.Format("Монитор - {0} x {1}", screenWidth, screenHeight)); double dishesPanelWidth; // вертикальная разметка: панель меню сверху if (AppLib.IsAppVerticalLayout) { // панель меню AppLib.SetAppGlobalValue("categoriesPanelWidth", screenWidth); AppLib.SetAppGlobalValue("categoriesPanelHeight", (screenHeight / 6d * 1.0d)); // панель блюд dishesPanelWidth = screenWidth; AppLib.SetAppGlobalValue("dishesPanelHeight", (screenHeight / 6d * 5.0d)); } // горизонтальная разметка: панель меню справа else { // панель меню AppLib.SetAppGlobalValue("categoriesPanelWidth", (screenWidth / 6d * 1d)); AppLib.SetAppGlobalValue("categoriesPanelHeight", screenHeight); // панель блюд dishesPanelWidth = (screenWidth / 6d * 5d); AppLib.SetAppGlobalValue("dishesPanelHeight", screenHeight); } AppLib.SetAppGlobalValue("dishesPanelWidth", dishesPanelWidth); // кол-во колонок панелей блюд saveAppSettingToProps("dishesColumnsCount"); int dColCount = AppLib.GetAppGlobalValue("dishesColumnsCount", 0).ToString().ToInt(); if (dColCount == 0) { dColCount = 3; AppLib.SetAppGlobalValue("dishesColumnsCount", dColCount); } // *************** // панель блюда double dishPanelWidth = 0.95d * dishesPanelWidth / dColCount; AppLib.SetAppGlobalValue("dishPanelWidth", dishPanelWidth); double contentPanelWidth = 0.9d * dishPanelWidth; AppLib.SetAppGlobalValue("dishImageWidth", contentPanelWidth); AppLib.SetAppGlobalValue("contentPanelWidth", contentPanelWidth); double dishPanelLeftMargin = (dishesPanelWidth - dColCount * dishPanelWidth) / 2; AppLib.SetAppGlobalValue("dishPanelLeftMargin", dishPanelLeftMargin); // высота строки заголовка double dishPanelHeaderRowHeight = (AppLib.IsAppVerticalLayout ? 0.25d : 0.17d) * dishPanelWidth; if (dColCount == 2) { dishPanelHeaderRowHeight *= 0.5; } AppLib.SetAppGlobalValue("dishPanelHeaderRowHeight", dishPanelHeaderRowHeight); // высота строки изображения double dishPanelImageRowHeight = 0.7d * dishPanelWidth; AppLib.SetAppGlobalValue("dishPanelImageRowHeight", dishPanelImageRowHeight); AppLib.SetAppGlobalValue("dishImageHeight", dishPanelImageRowHeight); // высота строки гарниров double dishPanelGarnishesRowHeight = ((AppLib.IsAppVerticalLayout)?0.3d:0.2d) * dishPanelWidth; AppLib.SetAppGlobalValue("dishPanelGarnishesRowHeight", dishPanelGarnishesRowHeight); // высота строки кнопки добавления double dishPanelAddButtonRowHeight = (AppLib.IsAppVerticalLayout?0.25d:0.15d) * dishPanelWidth; AppLib.SetAppGlobalValue("dishPanelAddButtonRowHeight", dishPanelAddButtonRowHeight); AppLib.SetAppGlobalValue("dishPanelAddButtonTextSize", 0.3d * dishPanelAddButtonRowHeight); // расстояния между строками панели блюда double dishPanelRowMargin1 = 0.01d * dishPanelWidth; double dishPanelRowMargin2 = (AppLib.IsAppVerticalLayout?0.03d:0.02d) * dishPanelWidth; AppLib.SetAppGlobalValue("dishPanelRowMargin1", dishPanelRowMargin1); AppLib.SetAppGlobalValue("dishPanelRowMargin2", dishPanelRowMargin2); // размер кнопки описания блюда AppLib.SetAppGlobalValue("dishPanelDescrButtonSize", 0.085d * dishPanelWidth); // высота панелей double dishPanelHeight = Math.Floor(dishPanelHeaderRowHeight + dishPanelRowMargin1 + dishPanelImageRowHeight + dishPanelRowMargin2 + dishPanelAddButtonRowHeight); double dishPanelHeightWithGarnish = Math.Floor(dishPanelHeight + dishPanelGarnishesRowHeight + dishPanelRowMargin2); AppLib.SetAppGlobalValue("dishPanelHeight", dishPanelHeight); AppLib.SetAppGlobalValue("dishPanelHeightWithGarnish", dishPanelHeightWithGarnish); dVar = 1d; double contentPanelHeight = Math.Floor(dVar * dishPanelHeight); double contentPanelHeightWithGarnish = Math.Floor(dVar * dishPanelHeightWithGarnish); AppLib.SetAppGlobalValue("contentPanelHeight", contentPanelHeight); AppLib.SetAppGlobalValue("contentPanelHeightWithGarnish", contentPanelHeightWithGarnish); // *********** // углы закругления dVar = 0.005 * screenWidth; AppLib.SetAppGlobalValue("cornerRadiusButton", dVar); AppLib.SetAppGlobalValue("cornerRadiusGarnish", 0.5 * dVar); AppLib.SetAppGlobalValue("cornerRadiusDishPanel", 2 * dVar); dVar = 0.5 * screenWidth; AppLib.SetAppGlobalValue("maxDialogWindowWidth", dVar); // РАЗМЕРЫ ШРИФТОВ double appFontSize0, appFontSize1, appFontSize2, appFontSize3, appFontSize4, appFontSize5, appFontSize6, appFontSize7; double minVal = Math.Min(screenWidth, screenHeight); appFontSize0 = 0.055 * minVal; appFontSize1 = 0.04 * minVal; appFontSize2 = 0.8 * appFontSize1; appFontSize3 = 0.8 * appFontSize2; appFontSize4 = 0.8 * appFontSize3; appFontSize5 = 0.8 * appFontSize4; appFontSize6 = 0.8 * appFontSize5; appFontSize7 = 0.8 * appFontSize6; AppLib.SetAppGlobalValue("appFontSize0", appFontSize0); AppLib.SetAppGlobalValue("appFontSize1", appFontSize1); AppLib.SetAppGlobalValue("appFontSize2", appFontSize2); AppLib.SetAppGlobalValue("appFontSize3", appFontSize3); AppLib.SetAppGlobalValue("appFontSize4", appFontSize4); AppLib.SetAppGlobalValue("appFontSize5", appFontSize5); AppLib.SetAppGlobalValue("appFontSize6", appFontSize6); AppLib.SetAppGlobalValue("appFontSize7", appFontSize7); }
private static void getSettingsFromConfigFile() { AppLib.WriteLogTraceMessage("Читаю настройки из файла *.config ..."); // фоновое изображение saveAppSettingToProps("BackgroundImageHorizontal"); saveAppSettingToProps("BackgroundImageVertical"); saveAppSettingToProps("BackgroundImageBrightness", typeof(double), "0.2"); // идентификатор устройства самообслуживания saveAppSettingToProps("ssdID", null); App.DeviceId = (string)AppLib.GetAppGlobalValue("ssdID"); // путь к папке с изображениями saveAppSettingToProps("ImagesPath"); // символ денежной единицы saveAppSettingToProps("CurrencyChar", null); // печать чека // ширина в пикселях (1"=96px => 1px = 0.26mm) saveAppSettingToProps("BillPageWidht", typeof(int), "300"); // размер шрифта позиций заказа saveAppSettingToProps("BillLineFontSize", typeof(int), "12"); // отступ слева строк позиций заказа, в пикселях (1px = 0.26mm) saveAppSettingToProps("BillLineLeftMargin", typeof(int), "0"); // отступ сверху строки блюда, в пикселях (1px = 0.26mm) saveAppSettingToProps("BillLineTopMargin", typeof(int), "10"); // отступ сверху строки ингредиента, в пикселях (1px = 0.26mm) saveAppSettingToProps("BillLineIngrTopMargin", typeof(int), "0"); // отступ сверху строки цены, в пикселях (1px = 0.26mm) saveAppSettingToProps("BillLinePriceTopMargin", typeof(int), "0"); // большие кнопки прокрутки панели блюд saveAppSettingToProps("dishesPanelScrollButtonSize", typeof(double)); saveAppSettingToProps("dishesPanelScrollButtonHorizontalAlignment"); // размер шрифта заголовка панели блюда saveAppSettingToProps("dishPanelHeaderFontSize", typeof(int)); saveAppSettingToProps("dishPanelUnitCountFontSize", typeof(int)); saveAppSettingToProps("dishPanelDescriptionFontSize", typeof(int)); saveAppSettingToProps("dishPanelAddButtoFontSize", typeof(int)); saveAppSettingToProps("dishPanelFontSize", typeof(int)); saveAppSettingToProps("dishPanelGarnishBrightness"); saveAppSettingToPropTypeBool("IsPrintBarCode"); saveAppSettingToPropTypeBool("IsIncludeBarCodeLabel"); saveAppSettingToPropTypeBool("isAnimatedSelectVoki"); // saveAppSettingToPropTypeBool("IsWriteTraceMessages"); // добавить некоторые постоянные тексты (заголовки, надписи на кнопках) parseAndSetAllLangString("dialogBoxYesText"); parseAndSetAllLangString("dialogBoxNoText"); parseAndSetAllLangString("wordIngredients"); parseAndSetAllLangString("InputNumberWinTitle"); parseAndSetAllLangString("cartDelIngrTitle"); parseAndSetAllLangString("cartDelIngrQuestion"); parseAndSetAllLangString("cartDelDishTitle"); parseAndSetAllLangString("cartDelDishQuestion"); // сообщения печати parseAndSetAllLangString("printOrderTitle"); parseAndSetAllLangString("saveOrderErrorMessage"); parseAndSetAllLangString("userErrMsgSuffix"); parseAndSetAllLangString("afterPrintingErrMsg"); parseAndSetAllLangString("printConfigError"); parseAndSetAllLangString("printerStatusMsg"); // TakeOrder window parseAndSetAllLangString("takeOrderOut"); parseAndSetAllLangString("wordOr"); parseAndSetAllLangString("takeOrderIn"); // AreYouHere window saveAppSettingToProps("UserIdleTime", typeof(int)); // время бездействия из config-файла, в сек parseAndSetAllLangString("areYouHereTitle"); parseAndSetAllLangString("areYouHereQuestion"); // время в секундах, через которое произойдет возврат приложения в исходное состояние, если пользователь не нажал Да saveAppSettingToProps("autoUIReset", typeof(int)); parseAndSetAllLangString("CurrencyName"); parseAndSetAllLangString("withGarnish"); AppLib.WriteLogTraceMessage("Читаю настройки из файла *.config ... READY"); }
public static void Main() { App app = new App(); if (Microsoft.Shell.SingleInstance <App> .InitializeAsFirstInstance(Unique)) { string cfgValue; // установить текущий каталог на папку с приложением string setAppDirResult = setAppDirectory(); // splash-screen Splasher.Splash = new Views.SplashScreen(); Splasher.ShowSplash(); MessageListener.Instance.ReceiveMessage("Инициализация журнала событий..."); cfgValue = AppLib.InitAppLoggers(); if (cfgValue != null) { appExit(1, "Ошибка инициализации журнала приложения: " + cfgValue); } AppLib.WriteLogInfoMessage("************ Start NoodleD_Client (WPF) *************"); // объем доступной памяти MessageListener.Instance.ReceiveMessage("Check free RAM value..."); int freeMemory = AppLib.getAvailableRAM(); AppLib.WriteLogInfoMessage("Available RAM: " + freeMemory.ToString() + " MB"); if (freeMemory < 300) { AppLib.WriteLogErrorMessage("Terminate program by low memory."); AppLib.WriteLogInfoMessage("************ End application ************"); appExit(2, "This computer has too low available memory.\r\nYou need at least 300 MB free memory."); } if (setAppDirResult.IsNull() == false) { AppLib.WriteLogInfoMessage(setAppDirResult); } // таймаут запуска приложения cfgValue = CfgFileHelper.GetAppSetting("StartTimeout"); int startTimeout = 0; if (cfgValue != null) { startTimeout = cfgValue.ToInt(); } if (startTimeout != 0) { for (int i = startTimeout; i > 0; i--) { MessageListener.Instance.ReceiveMessage($"Таймаут запуска приложения - {i} секунд."); System.Threading.Thread.Sleep(1000); } } #region информация о сборках MessageListener.Instance.ReceiveMessage("Получаю информацию о сборках и настройках..."); ITSAssemblyInfo asmInfo = new ITSAssemblyInfo(AppEnvironment.GetAppAssemblyName()); AppLib.WriteLogInfoMessage($" - файл: {asmInfo.FullFileName}, version {asmInfo.Version}, last write date '{asmInfo.DateLastOpened.ToString()}'"); asmInfo = new ITSAssemblyInfo("IntegraLib"); AppLib.WriteLogInfoMessage($" - файл: {asmInfo.FullFileName}, version {asmInfo.Version}, last write date '{asmInfo.DateLastOpened.ToString()}'"); asmInfo = new ITSAssemblyInfo("IntegraWPFLib"); AppLib.WriteLogInfoMessage($" - файл: {asmInfo.FullFileName}, version {asmInfo.Version}, last write date '{asmInfo.DateLastOpened.ToString()}'"); AppLib.WriteLogInfoMessage("Системное окружение: " + AppEnvironment.GetEnvironmentString()); // номер устройства - не число! if (AppLib.GetAppSetting("ssdID").IsNumber() == false) { AppLib.WriteLogErrorMessage("** Номер устройства - НЕ ЧИСЛО !! **"); AppLib.WriteLogInfoMessage("************ End application ************"); appExit(4, "Номер устройства - НЕ ЧИСЛО!!"); } // основная информация о софт-окружении AppLib.WriteLogTraceMessage(string.Format("Настройки: Id устройства-{0}, папка изображений-{1}, таймер бездействия-{2} sec, диапазон номеров чеков от {3} до {4}, принтер пречека-{5}", AppLib.GetAppSetting("ssdID"), AppLib.GetAppSetting("ImagesPath"), AppLib.GetAppSetting("UserIdleTime"), AppLib.GetAppSetting("RandomOrderNumFrom"), AppLib.GetAppSetting("RandomOrderNumTo"), AppLib.GetAppSetting("PrinterName"))); //****** НАСТРОЙКИ ****** // определенные в app.xaml app.InitializeComponent(); // определенные в config-файле getSettingsFromConfigFile(); // вычислить размеры, хранимые в свойствах приложения calculateAppSizes(); // прочие глобальные настройки AppLib.SetAppGlobalValue("promoCode", null); //TestData.mainProc(); #endregion // проверка соединения с бд MessageListener.Instance.ReceiveMessage("Проверяю доступность к базе данных..."); AppLib.WriteLogTraceMessage("Проверка доступа к базе данных..."); AppLib.WriteLogTraceMessage(" - строка подключения: " + getDbConnectionString()); string errorMessage; while (AppLib.CheckDBConnection(typeof(NoodleDContext), out errorMessage) == false) { AppLib.WriteLogTraceMessage(" - result: " + errorMessage); // задержка на 10 сек for (int i = 10; i > 0; i--) { MessageListener.Instance.ReceiveMessage($"Проверка доступа к БД завершилась ошибкой!! (след.проверка через {i} сек)"); Thread.Sleep(1000); } MessageListener.Instance.ReceiveMessage("Проверяю доступность к базе данных..."); Thread.Sleep(500); } AppLib.WriteLogTraceMessage(" - result: Ok"); // настройки, определенные в ms sql readSettingFromDB(); // данные, хранящиеся в БД readAppDataFromDB(); // ожидашка int idleSec = (int)AppLib.GetAppGlobalValue("UserIdleTime", 0); if (idleSec > 0) { IdleHandler = new UserActionIdle(); IdleHandler.IdleSeconds = idleSec; IdleHandler.IdleElapseEvent += IdleHandler_IdleElapseEvent; IdleHandler.SetPause(); } // главное окно приложения MessageListener.Instance.ReceiveMessage("Запуск основного окна..."); Thread.Sleep(500); MainWindow mainWindow = new MainWindow(); try { app.Run(mainWindow); } catch (Exception ex) { AppLib.WriteLogErrorMessage(ex.ToString()); MessageBox.Show(ex.Message, "Error Application", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); } AppLib.WriteLogInfoMessage("************ End application ************"); // подчистить память if (IdleHandler != null) { IdleHandler.Dispose(); } // Allow single instance code to perform cleanup operations Microsoft.Shell.SingleInstance <App> .Cleanup(); } }
// окно Ожидашки private static bool idleAction() { AppLib.WriteLogTraceMessage("Таймер ожидания: истек период бездействия..."); // условия, при которых таймер бездействия ставится на паузу if (AppLib.IsOpenWindow("MsgBoxExt", "idleWin")) { AppLib.WriteLogTraceMessage("Таймер ожидания: ожидашка уже открыта"); return(false); // само окно бездействия } // продолжаем, т.е. показываем окно бездействия, если открыты некоторые окна или есть блюда в корзине AppModel.OrderItem order = (AppModel.OrderItem)AppLib.GetAppGlobalValue("currentOrder"); bool isContinue = AppLib.IsOpenWindow("Cart") || AppLib.IsOpenWindow("DishPopup") || AppLib.IsOpenWindow("Promocode") || ((order.Dishes != null) && (order.Dishes.Count > 0)); if (isContinue == false) { AppLib.WriteLogTraceMessage("Таймер ожидания: не выполнены условия показа ожидашки"); return(false); } MsgBoxExt mBox = new MsgBoxExt() { Name = "idleWin", ShowActivated = true, BigButtons = true, IsShowTitle = false, IsMessageCentered = true, IsRoundCorner = true, MessageFontSize = (double)AppLib.GetAppGlobalValue("appFontSize1"), ButtonFontSize = (double)AppLib.GetAppGlobalValue((AppLib.IsAppVerticalLayout) ? "appFontSize2" : "appFontSize1"), MsgBoxButton = MessageBoxButton.YesNo, ButtonForeground = Brushes.White, ButtonBackground = (Brush)AppLib.GetAppGlobalValue("appBackgroundColor"), ButtonBackgroundOver = (Brush)AppLib.GetAppGlobalValue("appBackgroundColor"), }; mBox.CloseByButtonPress = true; var v = AppLib.GetAppGlobalValue("autoUIReset"); double dInterval = (v == null) ? 10000 : (int)v * 1000; // in msec mBox.SetAutoCloseTimer(dInterval, 500, (sender, e) => { double remainSec = Math.Round(e.RemainMilliSeconds / 1000d, 1); //mBox.MessageText = AppLib.GetLangTextFromAppProp("areYouHereQuestion") + "\nДо закрытия окна осталось " + remainSec.ToString() + " sec"; mBox.btn2Text.Text = AppLib.GetLangTextFromAppProp("dialogBoxNoText") + " (" + remainSec.ToString("0.0") + ")"; }); mBox.MessageText = AppLib.GetLangTextFromAppProp("areYouHereQuestion"); // надписи на кнопках Да/Нет согласно выбранному языку string sYes = AppLib.GetLangTextFromAppProp("dialogBoxYesText"); string sNo = AppLib.GetLangTextFromAppProp("dialogBoxNoText"); mBox.ButtonsText = string.Format(";;{0};{1}", sYes, sNo); AppLib.WriteLogTraceMessage("Таймер ожидания: открытие окна ожидашки"); MessageBoxResult result = mBox.ShowDialog(); AppLib.WriteLogTraceMessage("Таймер ожидания: окно ожидашки закрыто"); // reset UI bool retVal = false; if (result == MessageBoxResult.Yes) { // чтобы не срабатывали обработчики нижележащих контролов AppLib.IsEventsEnable = false; retVal = true; } else { AppLib.ReStartApp(true, true, false); } return(retVal); }
public static DishItem GetDishItemByRowGUID(string rowGuid) { IEnumerable <AppModel.MenuItem> mFolders = (IEnumerable <AppModel.MenuItem>)AppLib.GetAppGlobalValue("mainMenu"); DishItem retVal; foreach (AppModel.MenuItem menuItem in mFolders) { if ((retVal = menuItem.Dishes.FirstOrDefault <DishItem>(d => d.RowGUID.ToString() == rowGuid)) != null) { return(retVal); } } return(null); }