예제 #1
0
        public void CreateMeal_Should_Return_Valid_Data()
        {
            //Arrange
            var mock   = new Mock <IMealRepository>();
            var myMeal = new MealDTO
            {
                Id       = 1,
                Name     = "Starter",
                MealType = new MealTypeDTO()
            };

            mock.Setup(x => x.Create(myMeal)).Returns(
                new MealDTO
            {
                Id       = 1,
                Name     = "Starter",
                MealType = new MealTypeDTO()
            }
                );

            MealUC target = new MealUC(mock.Object);

            //Act
            var result = target.AddMeal(new MealBTO
            {
                Id       = 1,
                Name     = "Starter",
                MealType = new MealTypeBTO()
            });

            //Assert
            mock.Verify(u => u.Create(It.IsAny <MealDTO>()), Times.Once());
        }
예제 #2
0
        public void CreateMeal_Should_Return_Null_If_Dto_Is_Null()
        {
            //Arrange
            var mock   = new Mock <IMealRepository>();
            var myMeal = new MealDTO
            {
                Id       = 1,
                Name     = "Starter",
                MealType = new MealTypeDTO()
            };

            mock.Setup(x => x.Create(myMeal)).Returns(
                new MealDTO
            {
                Id       = 1,
                Name     = "Starter",
                MealType = new MealTypeDTO()
            }
                );

            MealUC target = new MealUC(mock.Object);

            //Act
            var result = target.AddMeal(null);

            //Assert
            Assert.IsNull(result);
        }
예제 #3
0
        public void ShowNutrient()
        {
            NutrientDTO   Nutdto = new NutrientDTO();
            MealDTO       dto    = new MealDTO();
            MealDetailDTO MDdto  = new MealDetailDTO();

            //dto = mbll.GetMeals();
            if (isSearch)
            {
                dto = mbll.GetMeals(keyword);
            }
            else
            {
                dto = mbll.GetMeals();
            }

            dataGridView1.DataSource = dto.Meals;
            dataGridView1.Columns["ID"].HeaderText         = "餐點編號";
            dataGridView1.Columns["Name"].HeaderText       = "食物名稱";
            dataGridView1.Columns["Calories"].HeaderText   = "卡路里";
            dataGridView1.Columns["Nutrient"].Visible      = false;
            dataGridView1.Columns["Image"].Visible         = false;
            dataGridView1.Columns["NutrientID"].HeaderText = "營養編號";
            dataGridView1.Columns["Fat"].HeaderText        = "脂肪";
            dataGridView1.Columns["Protein"].HeaderText    = "蛋白質";
            dataGridView1.Columns["Carbs"].HeaderText      = "碳水化合物";
            dataGridView1.Columns["Sugar"].HeaderText      = "醣";
            dataGridView1.Columns["VitA"].HeaderText       = "維生素A";
            dataGridView1.Columns["VitB"].HeaderText       = "維生素B";
            dataGridView1.Columns["VitC"].HeaderText       = "維生素C";
            dataGridView1.Columns["VitD"].HeaderText       = "維生素D";
            dataGridView1.Columns["VitE"].HeaderText       = "維生素E";
            dataGridView1.Columns["Na"].HeaderText         = "鈉";
            dataGridView1.Columns["K"].HeaderText          = "鉀";
        }
        public void ShowMeals()
        {
            bll = new MealBLL();
            if(isSearch) dto = bll.GetMeals(keyword);
            else dto = bll.GetMeals();

            //dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

            dataGridView1.DataSource = dto.Meals;
            dataGridView1.Columns["ID"].HeaderText = "餐點編號";
            dataGridView1.Columns["Name"].HeaderText = "餐點名稱";
            dataGridView1.Columns["Calories"].HeaderText = "卡路里";
            dataGridView1.Columns["Image"].Visible = false;
            dataGridView1.Columns["Nutrient"].Visible = false;
            dataGridView1.Columns["NutrientID"].HeaderText = "營養ID";
            dataGridView1.Columns["Fat"].Visible = false;
            dataGridView1.Columns["Protein"].Visible = false;
            dataGridView1.Columns["Carbs"].Visible = false;
            dataGridView1.Columns["Sugar"].Visible = false;
            dataGridView1.Columns["VitA"].Visible = false;
            dataGridView1.Columns["VitB"].Visible = false;
            dataGridView1.Columns["VitC"].Visible = false;
            dataGridView1.Columns["VitD"].Visible = false;
            dataGridView1.Columns["VitE"].Visible = false;
            dataGridView1.Columns["Na"].Visible = false;
            dataGridView1.Columns["K"].Visible = false;
            if (dataGridView2.DataSource != null)
            {
                dataGridView2.Columns["ID"].HeaderText = "標籤編號";
                dataGridView2.Columns["Name"].HeaderText = "標籤名稱";
            }
            isSearch = false;
        }
예제 #5
0
        public MealDTO GetMealDTO(Meal meal)
        {
            int count = meal.UserMeals.Count(us => us.Stars != null && us.Stars != 0);

            if (count <= 0)
            {
                count = 1;
            }
            int makeTime = 0;

            if (meal.MakeTime != null)
            {
                makeTime = (int)meal.MakeTime;
            }
            MealDTO mealDTO = new MealDTO {
                MealID         = meal.MealID,
                Name           = meal.Name,
                Stars          = meal.UserMeals.Sum(um => (float)(um.Stars)) / count,
                MealTypeName   = meal.MealType.Name,
                Picture        = meal.Picture,
                MakeTime       = makeTime,
                DifficultyName = meal.Difficulty.ToString()
            };

            return(mealDTO);
        }
예제 #6
0
        private void CBoxKeyWord_TextChanged(object sender, EventArgs e)
        {
            ComboBox cb           = sender as ComboBox;
            string   InputKeyword = cb.Text;

            if (InputKeyword == "")
            {
                return;
            }
            MealDTO Mdto = mBll.GetMeals(InputKeyword);

            if (Mdto.Meals.Count == 0)
            {
                return;
            }
            foreach (var m in Mdto.Meals)
            {
                cb.Items.Add(m);
                cb.DisplayMember = "Name";
                cb.ValueMember   = "ID";
            }

            cb.DroppedDown = true;
            cb.Text        = "";
        }
예제 #7
0
        public MealDTO GetById(int id)
        {
            MealDTO meal;
            string  queryString =
                "SELECT * from meal" +
                " WHERE  @meal_id = meal.id";

            using (SqlConnection connection = EstablishingConnection.GetConnection())
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(queryString, connection))
                {
                    command.Parameters.AddWithValue("@meal_id", id);

                    SqlDataReader reader = command.ExecuteReader();
                    meal = new MealDTO();

                    while (reader.Read())
                    {
                        MealDTO mealNew = new MealDTO
                        {
                            Id          = (int)reader["id"],
                            ProgramId   = (int)reader["program_id"],
                            MealTypeId  = (int)reader["meal_type_id"],
                            StartTime   = Convert.ToDateTime(reader["start_time"]),
                            Description = (string)reader["description"],
                        };
                        meal = mealNew;
                    }
                    connection.Close();
                }
                return(meal);
            }
        }
        public void GetMealById_Should_Return_Valid_Data()
        {
            //Arrange
            var mock   = new Mock <IMealRepository>();
            var myMeal = new MealDTO
            {
                Id       = 1,
                Name     = "Starter",
                MealType = new MealTypeDTO()
            };

            mock.Setup(x => x.GetById(1)).Returns(
                new MealDTO
            {
                Id       = 1,
                Name     = "Starter",
                MealType = new MealTypeDTO()
            }
                );

            MealUC target = new MealUC(mock.Object);

            //Act
            var result = target.GetMealById(1);

            //Assert
            Assert.AreEqual(result.Id, 1);
            Assert.AreEqual(result.Name, "Starter");
        }
예제 #9
0
        public MealDTO GetMeals()
        {
            MealDTO dto = new MealDTO();

            dto.Meals = dao.GetMeals();
            return(dto);
        }
예제 #10
0
        public MealDTO GetMeals(string text)
        {
            MealDTO dto = new MealDTO();

            dto.Meals = dao.GetMeals(text);
            return(dto);
        }
 private void LoadComboBox()
 {
     mealDTO                = mealBLL.GetMeals();
     cmbMeals.DataSource    = mealDTO.Meals;
     cmbMeals.DisplayMember = "Name";
     cmbMeals.ValueMember   = "ID";
 }
        private void btnDelete_Click(object sender, EventArgs e)
        {
            
            DialogResult result = MessageBox.Show("你確定欲刪除該餐點 " + detail.Name + " ?" , "警告", MessageBoxButtons.YesNo);
            

            if (result == DialogResult.Yes)
            {
               
                if (bll.HasTags(detail.ID))
                {
                    bll.RemoveTags(detail.ID); // Delete tags first.
                    
                    MessageBox.Show("附帶餐點標籤已刪除");
                }
                 
                if (bll.Delete(detail.ID)) // Then delete meals.
                {
                    nbll.Delete(detail.NutrientID);
                    MessageBox.Show("餐點已刪除");
                    bll = new MealBLL();
                    dto = bll.GetMeals();
                    
                    ShowMeals();
                    this.textBox1.Clear();
                }
                
                
            }
        }
        public void AddMeal(MealDTO mealDTO)
        {
            var meal = _mealMapper.GetMealFromMealDTO(mealDTO);

            _mealRepository.AddMeal(meal);

            mealDTO.Id = meal.MealId;
        }
예제 #14
0
        public void Add(MealDTO mealDto)
        {
            var meal = new Meal
            {
                Name        = mealDto.Name,
                NameForeign = mealDto.NameForeign
            };

            _mealRepository.Add(meal, mealDto.ImageBase64);

            var ingredients = new List <Ingredient>();

            foreach (var item in mealDto.Ingredients)
            {
                ingredients.Add(new Ingredient
                {
                    Name        = item.Name,
                    NameForeign = item.NameForeign
                });
            }
            _ingredientRepository.Add(ingredients);

            var allergens = new List <Allergen>();

            foreach (var item in mealDto.Allergens)
            {
                allergens.Add(new Allergen
                {
                    Name        = item.Name,
                    NameForeign = item.NameForeign
                });
            }
            _allergenRepository.Add(allergens);

            var mealIngredients = new List <MealIngredient>();

            foreach (var item in ingredients)
            {
                mealIngredients.Add(new MealIngredient
                {
                    MealId       = meal.Id,
                    IngredientId = item.Id
                });
            }
            _ingredientRepository.AddMealIngredients(mealIngredients);

            var mealAllergens = new List <MealAllergen>();

            foreach (var item in allergens)
            {
                mealAllergens.Add(new MealAllergen
                {
                    MealId     = meal.Id,
                    AllergenId = item.Id
                });
            }
            _allergenRepository.AddMealAllergens(mealAllergens);
        }
예제 #15
0
 public static Meal ToMeal(this MealDTO meal)
 {
     return(new Meal()
     {
         Name = meal.Name,
         Price = meal.Price,
         MealItems = meal.MealItems.Select(m => m.ToMealItem()).ToList(),
     });
 }
예제 #16
0
        public MealDTO Create(MealDTO obj)
        {
            var meal = obj.DtoToMeal();

            contextDB.MealTypes.First(x => x.Id == obj.MealType.Id);
            contextDB.Meals.Add(meal);
            contextDB.SaveChanges();
            return(meal.MealToDTO());
        }
예제 #17
0
        public async Task <IActionResult> UpdateMeal(int mealId, [FromBody] MealDTO mealDTO)
        {
            var command = new UpdateMealCommand(mealId, mealDTO.Meal, mealDTO.Price, mealDTO.Url);
            var result  = await _mediatr.Send(command);

            return(result.Failure
          ? Conflict(result)
          : (IActionResult)Created(string.Empty, result.Success));
        }
예제 #18
0
        public Meals GetMealFromMealDTO(MealDTO mealDTO)
        {
            var result = new Meals {
                MealId = mealDTO.Id,
                Name   = mealDTO.Name,
                Price  = mealDTO.Price
            };

            return(result);
        }
예제 #19
0
        public MealDTO GetMealDTOFromMeal(Meals meals)
        {
            var result = new MealDTO {
                Id    = meals.MealId,
                Name  = meals.Name,
                Price = meals.Price
            };

            return(result);
        }
 private void btnTag_Click(object sender, EventArgs e)
 {
     BSFrmTag frm = new BSFrmTag();
     this.Hide();
     frm.ShowDialog();
     this.Visible = true;
     bll = new MealBLL();
     dto = bll.GetMeals();
     ShowMeals();
 }
 private void LoadComboBox()
 {
     categoryDTO.CommentCategories = categoryBLL.GetCommentCategories();
     cmbCategory.DataSource        = categoryDTO.CommentCategories;
     cmbCategory.DisplayMember     = "Name";
     cmbCategory.ValueMember       = "ID";
     mealDTO                = mealBLL.GetMeals();
     cmbMeals.DataSource    = mealDTO.Meals;
     cmbMeals.DisplayMember = "Name";
     cmbMeals.ValueMember   = "ID";
 }
예제 #22
0
        public MealBTO AddMeal(MealBTO mealBto)
        {
            MealDTO meal = new MealDTO();

            if (mealBto != null)
            {
                meal = mealRepository.Create(mealBto.BTOToMealDomain().MealDomainToDTO());
                return(meal.DTOToMealDomain().MealDomainToBTO());
            }
            return(null);
        }
예제 #23
0
        public MealBTO UpdateMeal(MealBTO mealBto)
        {
            MealDTO meal = new MealDTO();

            if (mealBto != null)
            {
                meal = mealRepository.Update(mealBto.BTOToMealDomain().MealDomainToDTO());
                return(meal?.DTOToMealDomain().MealDomainToBTO() ?? null);
            }
            return(null);
        }
예제 #24
0
        public IActionResult Create(int?id, MealDTO meal)
        {
            var result = new MealDTO {
                Id    = meal.Id,
                Name  = meal.Name,
                Price = meal.Price
            };

            mealService.AddMeal(meal);
            return(RedirectToAction("GetAll", "Meal"));
        }
예제 #25
0
        public static List <MealDTO> MealsToDto(List <Meal> meals)
        {
            var result = new List <MealDTO>();
            var dto    = new MealDTO();

            foreach (var m in meals)
            {
                dto = MealtoDto(m);
                result.Add(dto);
            }
            return(result);
        }
예제 #26
0
 public IActionResult Add([FromBody] MealDTO mealDto)
 {
     try
     {
         _mealManager.Add(mealDto);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
예제 #27
0
        public async Task <bool> AddMeal([System.Web.Http.FromUri] MealDTO Request)
        {
            var File = this.Request.Files;

            if (File.Count > 0 && File[0].ContentLength > 0)
            {
                var path = Path.Combine(Server.MapPath("~/Images/"),
                                        System.IO.Path.GetFileName(File[0].FileName));
                File[0].SaveAs(path);
                Request.PictureURL = path;
            }
            MealService CurrentService = new MealService();

            return((bool)CurrentService.AddMeal(Request));
        }
예제 #28
0
        public ActionResult AddMeal(MealDTO md)
        {
            Meal m = new Meal()
            {
                Id             = Guid.NewGuid(),
                Name           = md.Name,
                Amount         = md.Amount,
                Price          = md.Price,
                MealCategoryId = md.MealCategoryId,
            };

            if (_mealRepository.AddMeal(m))
            {
                return(Ok("A new meal was added successfully!"));
            }
            return(BadRequest("Oops, something went wrong with adding new meal!"));
        }
예제 #29
0
        public MealDTO Update(MealDTO obj)
        {
            var meal = contextDB.Meals.FirstOrDefault(x => x.Id == obj.Id);

            if (meal == null)
            {
                return(null);
            }
            else
            {
                meal.Name        = obj.Name;
                meal.Description = obj.Description;
                meal.Price       = obj.Price;
                meal.MealType    = obj.MealType.DtoToMealType();
                contextDB.SaveChanges();
                return(meal.MealToDTO());
            }
        }
예제 #30
0
        public IActionResult Post(MealDTO dto)
        {
            try
            {
                Meal = ApiRepository.DtoToMeal(dto);

                mealData.Add(Meal);

                if (mealData.Commit() > 0)
                {
                    return(CreatedAtAction("GetById", new { id = Meal.MealId }, Meal));
                }
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure"));
            }

            return(BadRequest());
        }