示例#1
0
        /// <summary>
        /// Ініціалізація форм
        /// </summary>
        /// <param name="s">Кнопка яка викликала відкриття форми</param>
        /// <param name="user">Користувач</param>
        /// <param name="recept">Рецепт для якого відкривається форма</param>
        public Recept(object s, User user, ReceptDb.Recept recept, MainForm main)
        {
            InitializeComponent();
            printDocument            = new PrintDocument();
            printDialog              = new PrintDialog();
            printDocument.PrintPage += PrintDocument_PrintPage;
            mainForm = main;

            currentRecept = recept;


            if (user.isAdmin)
            {
                receptPrintBtn.Visible = false;

                if (((s is Button) && ((Button)s).Name == "openModerationBtn") ||
                    ((s is ListBox) && ((ListBox)s).Name == "userReceptsListBox"))
                {
                    rejectBtn.Text     = "Відхилити";
                    confirmBtn.Visible = true;
                }

                rejectBtn.Visible = true;
            }

            receptNameLabel.Text   = recept.Name;
            receptTypeLabel.Text   = recept.ReceptType.Name;
            descriptionBox.Text    = recept.Description;
            receptAurhorLabel.Text = recept.User.Login;

            using (var context = new ReceptContext())
            {
                var rec = recept.Ingredients.Join(
                    context.Units,
                    r => r.UnitId,
                    u => u.id,
                    (r, u) => new
                {
                    Name  = r.Name,
                    Count = r.Count,
                    Unit  = u.Name
                });


                ingredientsData.Columns.Add("Name", "Назва");
                ingredientsData.Columns.Add("Count", "Кількість");
                ingredientsData.Columns.Add("Unit", "Мірна одиниця");


                foreach (var ingr in rec.ToList())
                {
                    ingredientsData.Rows.Add(ingr.Name, ingr.Count, ingr.Unit);
                }
            }
        }
示例#2
0
        //Створення нового рецепту
        private void receptCreate()
        {
            using (var context = new ReceptContext())
            {
                var type = (ReceptType)receptTypesBox.SelectedItem;

                if (string.IsNullOrWhiteSpace(receptNameBox.Text))
                {
                    MessageBox.Show("Вкажіть назву");
                    return;
                }

                if (string.IsNullOrWhiteSpace(receptDescBox.Text))
                {
                    MessageBox.Show("Вкажіть рецепт");
                    return;
                }

                var recept = new ReceptDb.Recept()
                {
                    Name         = receptNameBox.Text.Trim(),
                    Description  = receptDescBox.Text.Trim(),
                    UserId       = currentUser.id,
                    ReceptTypeId = type.id
                };

                context.Recepts.Add(recept);

                var ingrds = GetIngredients(recept.id);


                if (ingrds.Count != 0)
                {
                    if (CheckProhibitedIngredient(recept, ingrds) == false)
                    {
                        context.Ingredients.AddRange(ingrds);
                        context.SaveChanges();
                        MessageBox.Show("Рецепт відправленно на модерацію");

                        Close();
                    }
                    else
                    {
                        MessageBox.Show("Ваш рецепт містить заборонені інгредієнти");
                    }
                }
                else
                {
                    MessageBox.Show("Додайде інгредієнти");
                }
            }
        }
示例#3
0
        /// <summary>
        /// Перевірка на заборонені інгредієнти
        /// </summary>
        /// <param name="recept">Рецепт</param>
        /// <param name="ingredientList">Список інгредієнтів</param>
        /// <returns>True якщо не знайдено, False - знайдено</returns>
        private bool CheckProhibitedIngredient(ReceptDb.Recept recept, List <Ingredient> ingredientList)
        {
            using (var context = new ReceptContext())
            {
                var desc = recept.Description.ToLower().Split(' ');

                foreach (var prohibitedIngrd in context.ProhibitedIngredients.ToList())
                {
                    if (desc.Contains(prohibitedIngrd.Name))
                    {
                        return(true);
                    }

                    foreach (var ingr in ingredientList)
                    {
                        if (ingr.Name.ToLower() == prohibitedIngrd.Name.ToLower())
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }