public async Task AddDishItem() { var context = new FoodOrderContext().CreateDbContext(null); var repo = new FoodOrderRepository(context); var date = DateTime.Now; var dishItem = new DishItem { Name = "Salo", Price = 100, Category = new DishCategory { Name = "Еда богов" }, Supplier = repo.All <Supplier>().FirstOrDefault(x => x.Name == "ГлаголЪ"), AvailableOn = new List <DishItemToWeekDay> { new DishItemToWeekDay { WeekDay = repo.GetById <WeekDay>(1) } }, AvailableUntil = date }; await repo.InsertAsync(dishItem); await repo.SaveAsync(); var i = repo.All <DishItem>().Include(x => x.AvailableOn).FirstOrDefault(x => x.AvailableUntil == date); Assert.Equal(dishItem.AvailableOn.First().DishItemId, i.AvailableOn.First().DishItemId); Assert.Equal(dishItem.AvailableOn.First().WeekDayId, i.AvailableOn.First().WeekDayId); }
private void fillDishGroupBox (GroupBox dishGroupBox, Label imageLabel, Label descriptionLabel, ListBox ingredientsListBox, DishItem dishToShow) { dishGroupBox.Visible = true; descriptionLabel.Text = dishToShow.DishModel.CookingInstructions; dishGroupBox.Text = dishToShow.DishModel.Name; imageLabel.Image = dishToShow.Image; foreach (var ingredient in dishToShow.Ingredients) { StringBuilder ingredientInfo = new StringBuilder(); ingredientInfo.Append(ingredient.ProductName); ingredientInfo.Append(" - "); ingredientInfo.Append(ingredient.Weight); ingredientsListBox.Items.Add(ingredientInfo.ToString()); } Thread imageLoader = new Thread(() => { showDisheImage(imageLabel, dishToShow); }); imageLoader.Start(); }
public async Task <ActionResult <DishItem> > PostDishItem(DishItem item) { _context.DishItems.Add(item); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(GetDishItem), new { id = item.Id }, item)); }
private void dishDel() { DishItem dishItem = (DishItem)lstDishes.SelectedItem; if (dishItem == null) { return; } OrderItem order = AppLib.GetCurrentOrder(); AppLib.WriteAppAction($"CartWin|Удаление блюда '{dishItem.langNames["ru"]}'..."); string title = AppLib.GetLangTextFromAppProp("cartDelDishTitle"); string msg = string.Format("{0} \"{1}\" ?", AppLib.GetLangTextFromAppProp("cartDelDishQuestion"), AppLib.GetLangText(dishItem.langNames)); MessageBoxResult result = AppLib.ShowChoiceBox(title, msg); AppLib.WriteAppAction($"CartWin|Удаление блюда '{dishItem.langNames["ru"]}': {result.ToString()}"); if (result == MessageBoxResult.Yes) { order.Dishes.Remove(dishItem); lstDishes.Items.Refresh(); scrollDishes.ScrollToTop(); updatePriceOrder(); } }
public DishPopup(DishItem dishItem, BitmapImage img) { InitializeComponent(); AppLib.WriteAppAction($"DishPopup|Открывается всплывашка для блюда '{dishItem.langNames["ru"]}'..."); this.Loaded += DishPopup_Loaded; // init private vars _notSelTextColor = new SolidColorBrush(Colors.Black); _selTextColor = (SolidColorBrush)AppLib.GetAppGlobalValue("addButtonBackgroundTextColor"); setWinLayout(); // set Win data _currentDish = dishItem; this.DataContext = _currentDish; dishImage.Fill = new ImageBrush(img); //if (AppLib.GetAppSetting("IsWriteWindowEvents").ToBool()) //{ // _eventsLog = new UserActionsLog(this, EventsMouseEnum.Bubble, EventsKeyboardEnum.None, EventsTouchEnum.Bubble, UserActionLog.LogFilesPathLocationEnum.App_Logs, true, false); //} updatePriceControl(); }
public MainMenuGarnish(DishItem dishItem, int garnIndex, double garnHeight, double garnWidth, Grid dishContentPanel) { _dishItem = dishItem; _garnIndex = garnIndex; _garnItem = _dishItem.Garnishes[garnIndex]; _height = garnHeight; _width = garnWidth; _contentPanel = dishContentPanel; _fontSize = (double)AppLib.GetAppGlobalValue("appFontSize5"); _fontSizeUp = (double)AppLib.GetAppGlobalValue("appFontSize4"); _selectBackgroundBrush = (Brush)AppLib.GetAppGlobalValue("appSelectedItemColor"); _notSelectBackgroundBrush = (Brush)AppLib.GetAppGlobalValue("garnishBackgroundColor"); _selectTextBrush = (Brush)AppLib.GetAppGlobalValue("addButtonBackgroundPriceColor"); _notSelectTextBrush = Brushes.Black; //_shadow = new DropShadowEffect() { BlurRadius = 5, Opacity = 0.5, ShadowDepth = 1 }; _isSelected = false; this.DishWithGarnishImageBrush = new ImageBrush() { ImageSource = _garnItem.ImageDish }; createGarnishButton(); base.MouseUp += MainMenuGarnish_PreviewMouseDown; }
public void RemoveDishItem(DishItem item) { if (dishBag.Contains(item)) { dishBag.Remove(item); } }
public MainMenuDishPanel(DishItem dishItem, double leftPos, double topPos) { _parentWindow = (Window)App.Current.MainWindow; _dishItem = dishItem; _leftPos = leftPos; _topPos = topPos; _hasGarnishes = (_dishItem.Garnishes != null); currentPanelHeight = (_hasGarnishes) ? (double)AppLib.GetAppGlobalValue("dishPanelHeightWithGarnish") : (double)AppLib.GetAppGlobalValue("dishPanelHeight"); _brushSelectedItem = (SolidColorBrush)AppLib.GetAppGlobalValue("appSelectedItemColor"); _dishPanelAddButtoFontSize = Convert.ToDouble(AppLib.GetAppGlobalValue("dishPanelAddButtoFontSize")); _animBCol = (ColorAnimation)AppLib.GetAppGlobalValue("AddDishButtonBackgroundColorAnimation"); // анимация текста на кнопке добавления блюда _tAnim = new TextAnimation() { IsAnimFontSize = true, DurationFontSize = 200, FontSizeKoef = 1.2, RepeatBehaviorFontSize = 3, IsAnimTextBlur = false, }; _tAnim.Completed += _tAnim_Completed; // декоратор для панели блюда (должен быть для корректной работы ручного скроллинга) setDishPanel(); // панель содержания createContentPanel(); // Заголовок панели setDishPanelHeader(); // изображение блюда и описание setDishDescription(); // гарниры для Воков if (_hasGarnishes) { createGarnisheButtons(); } // изображения кнопок добавления setDishAddButton(); // прочитать и установить длительность анимации double cfgDuration = getDuration(); if (cfgDuration > 0) { // показать подсказку _sbDescrShow = getDescrStoryboard(true, cfgDuration); _sbDescrShow.Completed += _sbDescrShow_Completed; // скрыть подсказку _sbDescrHide = getDescrStoryboard(false, 0.7 * cfgDuration); _sbDescrHide.Completed += _sbDescrHide_Completed; } base.Children.Add(dGrid); Grid.SetRow(dGrid, 1); Grid.SetColumn(dGrid, 1); _daAddBtnShow = new DoubleAnimation(0d, 1d, TimeSpan.FromMilliseconds(300)); _daAddBtnHide = new DoubleAnimation(1d, 0d, TimeSpan.FromMilliseconds(300)); _daAddBtnShow.Completed += _daOpacity_Completed; }
public async Task <IActionResult> PutDishItem(long id, DishItem item) { if (id != item.Id) { return(BadRequest()); } _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); }
} // method #region добавить блюдо к заказу private void BtnAddDish_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (AppLib.IsDrag) { return; } if (AppLib.IsEventsEnable == false) { AppLib.IsEventsEnable = true; return; } Border brdAddButton = (Border)sender; if (brdAddButton.Opacity == 0) { return; } OrderItem _currentOrder = AppLib.GetCurrentOrder(); // изображение взять из элемента ImageBrush imgBrush = (ImageBrush)_pathImage.Fill; BitmapImage bmpImage = (imgBrush.ImageSource as BitmapImage); // если нет ИНГРЕДИЕНТОВ, то сразу в корзину // т.к. блюда без гарниров тоже могут быть с ингредиентами (и рекомендациями) if ((_dishItem.Ingredients == null) || (_dishItem.Ingredients.Count == 0)) { AppLib.WriteAppAction($"MainWin|Нажата кнопка выбора блюда '{_dishItem.langNames["ru"]}' (price {_dishItem.GetPrice().ToStringMoneyFormat()}) БЕЗ гарнира"); DishItem orderDish = _dishItem.GetCopyForOrder(); orderDish.Image = bmpImage; _currentOrder.Dishes.Add(orderDish); // анимировать перемещение блюда в корзину animateDishToCart(); } // иначе через "всплывашку" else { AppLib.WriteAppAction($"MainWin|Нажата кнопка выбора блюда '{_dishItem.langNames["ru"]}' (price {_dishItem.GetPrice().ToStringMoneyFormat()}) С гарниром '{_dishItem.Ingredients[0].langNames["ru"]}' (price {_dishItem.Ingredients[0].Price.ToStringMoneyFormat()})"); // текущее блюдо и его изображение передать в конструкторе DishPopup popupWin = new DishPopup(_dishItem, bmpImage); popupWin.ShowDialog(); // очистить выбранный гарнир ClearSelectedGarnish(); } // if else }
private void portionCountAdd() { DishItem curDish = (DishItem)lstDishes.SelectedItem; if (curDish == null) { return; } AppLib.WriteAppAction($"CartWin|Блюдо '{curDish.langNames["ru"]}' (price {curDish.GetPrice().ToStringMoneyFormat()}), увеличить кол-во порций({curDish.Count}) на 1"); curDish.Count++; AppLib.WriteAppAction($"CartWin|Блюдо '{curDish.langNames["ru"]}', кол-во порций: {curDish.Count}"); updatePriceControls(); }
// выбор блюда // ****** ??? процедура вызывается 2 раза!!! // если это MouseUp, если PreviewMouseUp - то один раз!! private void btnAddDish_MouseUp(object sender, MouseButtonEventArgs e) { _closeCause = "ButtonAddDish"; AppLib.WriteAppAction("DishPopup|Нажата кнопка AddDish"); e.Handled = true; // добавить блюдо в заказ OrderItem curOrder = AppLib.GetCurrentOrder(); DishItem orderDish = _currentDish.GetCopyForOrder(); // сделать копию блюда со всеми добавками // изображение взять из элемента ImageBrush imgBrush = (ImageBrush)dishImage.Fill; BitmapImage bmpImage = (imgBrush.ImageSource as BitmapImage); orderDish.Image = bmpImage; curOrder.Dishes.Add(orderDish); //Debug.Print("order.Dishes.Count = " + curOrder.Dishes.Count.ToString()); // добавить в заказ рекомендации if ((_currentDish.SelectedRecommends != null) && (_currentDish.SelectedRecommends.Count > 0)) { foreach (DishItem item in _currentDish.SelectedRecommends) { curOrder.Dishes.Add(item); } } if ((bool)AppLib.GetAppGlobalValue("isAnimatedSelectVoki")) { // закрыть окно после завершения анимации animateDishSelection(); } else { updatePriceAndClose(false); } }
// удаление ингредиента private void ingrDel(object sender, Point point) { // получить контролы из нажатого элемента // listbox ингредиентов ListBoxItem lbiIngr = (ListBoxItem)AppLib.FindVisualParentByType((FrameworkElement)sender, typeof(ListBoxItem)); ListBox lbIngr = (ListBox)AppLib.FindVisualParentByType((FrameworkElement)lbiIngr, typeof(ListBox)); DishAdding tmpIngr = (DishAdding)lbIngr.ItemContainerGenerator.ItemFromContainer(lbiIngr); int iCnt = lbIngr.ItemContainerGenerator.IndexFromContainer(lbiIngr); if (lbIngr.SelectedIndex != iCnt) { lbIngr.SelectedIndex = iCnt; } // listbox блюд AppLib.SelectListBoxItemByHisInnerControl((FrameworkElement)lbIngr, lstDishes); // делаем это принудетельно DishItem dishItem = (DishItem)lstDishes.SelectedItem; DishAdding ingrItem = (DishAdding)lbIngr.SelectedItem; AppLib.WriteAppAction($"CartWin|Нажата кнопка удаления ингредиента '{ingrItem.langNames["ru"]}' для блюда '{dishItem.langNames["ru"]}'"); string title = AppLib.GetLangTextFromAppProp("cartDelIngrTitle"); string msg = string.Format("{0} \"{1}\" ?", AppLib.GetLangTextFromAppProp("cartDelIngrQuestion"), AppLib.GetLangText(ingrItem.langNames)); MessageBoxResult result = AppLib.ShowChoiceBox(title, msg); AppLib.WriteAppAction($"CartWin|Удаление ингредиента {ingrItem.langNames["ru"]}: {result.ToString()}"); if (result == MessageBoxResult.Yes) { dishItem.SelectedIngredients.Remove(ingrItem); lbIngr.Items.Refresh(); updatePriceControls(); } this.Activate(); }
private void showDisheImage(Label element, DishItem dishItem) { element.Image = Resources.Spinner; element.Image = imageHelper.GetDishImage(dishItem.DishModel.BigPhotoLink); }
public IActionResult NewMealView(string submitButton, NewMealModel model) { long loggedUserId = GetUserSessionId(); NewMealModel returnModel = new NewMealModel(); SetBasicInfo(ref dishList, ref mealList, ref returnModel, loggedUserId); var meal = new MealItem(); //Został wciśnięty przycisk "Dodaj posiłek" if (submitButton == "add") { //Jeżeli nie uzupełniono obowiązkowych pól formularza if (!ModelState.IsValid) { return(View(returnModel)); } meal.Id = CalculateNextMealId(); //Pobranie z bazy danych dania którego dotyczył posiłek DishItem selectedDish = _dishDriver.GetDish(model.DishId); //Uzupełnienie obiektu posiłku i dodanie go do bazy meal.User_Id = GetUserSessionId(); meal.Dish_Id = model.DishId; meal.Amount = model.Amount; meal.Description = model.Description; meal.Meal_Name = model.Name; meal.Energy_Value = selectedDish.Energy_Value / 100 * model.Amount; meal.Carbonhydrate = selectedDish.Carbonhydrate / 100 * model.Amount; meal.Fat = selectedDish.Fat / 100 * model.Amount; meal.Fibre = selectedDish.Fibre / 100 * model.Amount; meal.Protein = selectedDish.Protein / 100 * model.Amount; meal.Sodium = selectedDish.Sodium / 100 * model.Amount; meal.Meal_Date = Convert.ToDateTime(model.Date + " " + model.Time); _mealDriver.Add(meal); returnModel.AddedDish = model.Name; returnModel.Communicate = "Added"; } //Został wciśnięty przycisk "Edytuj posiłek" else if (submitButton == "edit") { //Pobranie z bazy danych dania którego dotyczył posiłek DishItem selectedDish = _dishDriver.GetDish(model.EditedToDishId); //Uzupełnienie obiektu posiłku i aktualizacja odpowiedniego rekordu var mealEdit = new MealItem(); mealEdit.Id = model.EditMealId; mealEdit.Meal_Name = model.EditedToName; mealEdit.Description = model.EditedToDescription; mealEdit.User_Id = GetUserSessionId(); mealEdit.Dish_Id = model.EditedToDishId; mealEdit.Amount = model.EditedToAmount; mealEdit.Energy_Value = selectedDish.Energy_Value / 100 * model.EditedToAmount; mealEdit.Carbonhydrate = selectedDish.Carbonhydrate / 100 * model.EditedToAmount; mealEdit.Fat = selectedDish.Fat / 100 * model.EditedToAmount; mealEdit.Fibre = selectedDish.Fibre / 100 * model.EditedToAmount; mealEdit.Protein = selectedDish.Protein / 100 * model.EditedToAmount; mealEdit.Sodium = selectedDish.Sodium / 100 * model.EditedToAmount; mealEdit.Meal_Date = Convert.ToDateTime(model.EditedToDate + " " + model.EditedToTime); _mealDriver.Update(mealEdit); returnModel.AddedDish = model.EditedToName; returnModel.AllMeals = _mealDriver.GetAllMeal().ToList(); returnModel.Communicate = "Edited"; } //Został wciśnięty przycisk "Usuń posiłek" else if (submitButton == "delete") { //Usuwanie posiłku z bazy _mealDriver.Delete(model.EditMealId); returnModel.Communicate = "Deleted"; } //Aktualizacja modelu zwrotnego po dodaniu/edycji/usunięciu posiłku SetBasicInfo(ref dishList, ref mealList, ref returnModel, loggedUserId); return(View(returnModel)); }
public void AddDishItem(DishItem item) { dishBag.Add(item); }