Esempio n. 1
0
        internal bool AllMealIngredientsInFridge(MealViewModel mealToTest, Fridge fridgeToTest)
        {
            var fridgeIngredients = new HashSet <int>();
            var mealIngredients   = new HashSet <int>();

            //Populate meal ingredients
            foreach (var ingredient in mealToTest.Ingredients)
            {
                mealIngredients.Add(ingredient.IngredientId);
            }
            //Populate fridge ingredients
            foreach (var ingredient in fridgeToTest.Contents)
            {
                fridgeIngredients.Add(ingredient.IngredientId);
            }
            //Test if all meal ingredients are present in fridge ingredients
            if (mealIngredients.IsProperSubsetOf(fridgeIngredients))
            {
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
        public ActionResult <MealViewModel> Get(Guid id)
        {
            var res = _bo.Read(id);

            if (res.Success)
            {
                var mvm = new MealViewModel();
                if (res.Result == null)
                {
                    return(NotFound());
                }
                mvm.Id       = res.Result.Id;
                mvm.Name     = res.Result.Name;
                mvm.Starting = res.Result.StartingHours;
                mvm.Ending   = res.Result.EndingHours;
                return(mvm);
            }
            else
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
        }
        public async Task <IActionResult> Index()
        {
            var listOperation = await _bo.ListAsync();

            if (!listOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = listOperation.Exception.Message
                }));
            }
            var lst = new List <MealViewModel>();

            foreach (var item in listOperation.Result)
            {
                if (!item.IsDeleted)
                {
                    lst.Add(MealViewModel.Parse(item));
                }
            }
            return(View(lst));
        }
Esempio n. 4
0
        public JsonResult Insert(MealViewModel mViewModel)

        {
            try
            {
                Set_Date_Session(mViewModel.Meal);

                mViewModel.Meal.MealId = _mRepo.Insert(mViewModel.Meal);

                mViewModel.FriendlyMessage.Add(MessageStore.Get("M01"));

                Logger.Debug("Meal Controller Insert");
            }
            catch (Exception ex)
            {
                mViewModel.FriendlyMessage.Add(MessageStore.Get("SYS01"));

                Logger.Error("Meal Controller - Insert " + ex.Message);
            }

            return(Json(mViewModel));
        }
Esempio n. 5
0
        public ActionResult Update([FromBody] MealViewModel vm)
        {
            var res = _bo.Read(vm.Id);

            if (!res.Success)
            {
                return(new ObjectResult(HttpStatusCode.InternalServerError));
            }
            var current = res.Result;

            if (current == null)
            {
                return(NotFound());
            }
            if (current.Name == vm.Name && current.StartingHours == vm.Starting && current.EndingHours == vm.Ending)
            {
                return(StatusCode((int)HttpStatusCode.NotModified));
            }
            if (current.Name != vm.Name)
            {
                current.Name = vm.Name;
            }
            if (current.StartingHours != vm.Starting)
            {
                current.StartingHours = vm.Starting;
            }
            if (current.EndingHours != vm.Ending)
            {
                current.EndingHours = vm.Ending;
            }
            var updateResult = _bo.Update(current);

            if (!updateResult.Success)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
            return(Ok());
        }
Esempio n. 6
0
        public void PostMeals_ShouldRenderMealsViewModel()
        {
            // Arrange
            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap <Meal, MealViewModel>();
                cfg.CreateMap <MealViewModel, Meal>();
            });
            var mockedMapper        = new Mock <IMapper>();
            var mockedMealsService  = new Mock <IMealService>();
            var mockedOrdersService = new Mock <IOrderService>();

            var controller = new MealController(mockedMealsService.Object, mockedMapper.Object, mockedOrdersService.Object);

            var meal = new MealViewModel
            {
            };

            //Act and Assert
            controller
            .WithCallTo(c => c.Meals(meal))
            .ShouldRedirectToRoute("");
        }
        public async Task <IActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var getOperation = await _bo.ReadAsync((Guid)id);

            if (!getOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = getOperation.Exception.Message
                }));
            }
            if (getOperation.Result == null)
            {
                return(NotFound());
            }
            var vm = MealViewModel.Parse(getOperation.Result);

            return(View(vm));
        }
        public IActionResult CreateMeal(MealViewModel mealViewModel)
        {
            if (!ModelState.IsValid)
            {
                HttpContext.Session.SetString("NewMealStatus", "Partial");

                return(RedirectToAction("CreateMeal"));
            }

            List <Recipe> recipes      = new List <Recipe>();
            List <string> recipeStrArr = mealViewModel.ModelList;

            Meal meal = new Meal
            {
                Name = recipeStrArr[0]
            };

            for (int i = 1; i < recipeStrArr.Count; i++)
            {
                Recipe recipe = new Recipe
                {
                    RecipeId = Convert.ToInt32(mealViewModel.ModelList[i])
                };
                recipes.Add(recipe);
            }

            meal.Recipes = recipes;

            int mealId = mealPlanDAL.CreateMeal(meal);

            if (mealId > 0)
            {
                return(RedirectToAction("MealDetail", "Meal", new { id = Convert.ToInt32(mealId) }));
            }

            return(RedirectToAction("CreateMeal"));
        }
Esempio n. 9
0
        /// <summary>
        /// Creates the meal.
        /// </summary>
        /// <param name="meal">The meal.</param>
        /// <returns>
        /// True or false.
        /// </returns>
        public async Task <MealViewModel> CreateMeal(MealViewModel meal)
        {
            Guid correlationId = Guid.NewGuid();

            meal.CorrelationId = correlationId;
            var           json    = JsonConvert.SerializeObject(meal);
            StringContent content = Util.CreateStringContent(json, correlationId, null);
            var           uri     = this.config["MealsUri"];

            HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri)
            {
                Content = content,
            };

            httpRequestMessage.Headers.Clear();
            Util.AddDefaultEsbHeaders(httpRequestMessage, correlationId, this.config["FunctionsKey"]);
            var result = await this.httpClient.SendAsync(httpRequestMessage);

            result.EnsureSuccessStatusCode();

            MealViewModel responseModel = JsonConvert.DeserializeObject <MealViewModel>(result.Content.ReadAsStringAsync().Result);

            return(responseModel);
        }
Esempio n. 10
0
        public async Task <ActionResult <MealViewModel> > EditMeal(int id, MealViewModel model)
        {
            try
            {
                var existingMeal = _repository.GetMealById(id);
                if (existingMeal == null)
                {
                    return(NotFound($"Could not fine meal with id of {id}."));
                }
                _mapper.Map(model, existingMeal);

                var saveChanges = await _repository.SaveAll();

                if (saveChanges)
                {
                    return(_mapper.Map <MealViewModel>(existingMeal));
                }
            }
            catch (Exception)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, "Database failure."));
            }
            return(BadRequest("Unable to edit meal."));
        }
Esempio n. 11
0
 public ActionResult Index(MealViewModel mViewModel)
 {
     return(View("Index", mViewModel));
 }
Esempio n. 12
0
 public AddEditMealView()
 {
     InitializeComponent();
     ViewModel   = new MealViewModel();
     DataContext = ViewModel.Meal;
 }
Esempio n. 13
0
        public async Task <IActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var getOperation = await _bo.ReadAsync((Guid)id);

            if (!getOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = getOperation.Exception.Message
                }));
            }
            if (getOperation.Result == null)
            {
                return(NotFound());
            }
            var vm = MealViewModel.Parse(getOperation.Result);

            var flistOperation = await _fbo.ListAsync();

            if (!flistOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = flistOperation.Exception.Message
                }));
            }
            var foods = new List <SelectListItem>();

            foreach (var item in flistOperation.Result)
            {
                foods.Add(new SelectListItem()
                {
                    Value = item.Id.ToString(), Text = item.Name
                });
            }
            ViewBag.Foods = foods;

            var todlistOperation = await _todbo.ListAsync();

            if (!todlistOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = todlistOperation.Exception.Message
                }));
            }
            var tods = new List <SelectListItem>();

            foreach (var item in todlistOperation.Result)
            {
                tods.Add(new SelectListItem()
                {
                    Value = item.Id.ToString(), Text = item.Name
                });
            }
            ViewBag.TimesOfDay = tods;

            return(View(vm));
        }
Esempio n. 14
0
 public MealController()
 {
     model = new MealViewModel();
 }
Esempio n. 15
0
        private async Task <MealViewModel> GetMealViewModel(Guid id)
        {
            var getOperation = await _mbo.ReadAsync(id);

            return(MealViewModel.Parse(getOperation.Result));
        }
Esempio n. 16
0
        public async Task <IActionResult> Index()
        {
            var listOperation = await _bo.ListAsync();

            if (!listOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = listOperation.Exception.Message
                }));
            }
            var fIds   = listOperation.Result.Select(x => x.FoodId).Distinct().ToList();
            var todIds = listOperation.Result.Select(x => x.TimeOfDayId).Distinct().ToList();
            var lst    = new List <MealViewModel>();

            foreach (var item in listOperation.Result)
            {
                lst.Add(MealViewModel.Parse(item));
            }

            var flistOperation = await _fbo.ListAsync();

            if (!flistOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = flistOperation.Exception.Message
                }));
            }
            var foods = new List <SelectListItem>();

            foreach (var item in flistOperation.Result)
            {
                foods.Add(new SelectListItem()
                {
                    Value = item.Id.ToString(), Text = item.Name
                });
            }
            ViewBag.Foods = foods;

            var todlistOperation = await _todbo.ListAsync();

            if (!todlistOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = todlistOperation.Exception.Message
                }));
            }
            var tods = new List <SelectListItem>();

            foreach (var item in todlistOperation.Result)
            {
                tods.Add(new SelectListItem()
                {
                    Value = item.Id.ToString(), Text = item.Name
                });
            }
            ViewBag.TimesOfDay = tods;

            ViewData["Food"] = await GetFoodViewModels(fIds);

            ViewData["TimeOfDay"] = await GetTimeOfDayViewModels();

            return(View(lst));
        }
Esempio n. 17
0
 public IEnumerable <int> getSelectedIds(MealViewModel model)
 {
     // Return an Enumerable containing the Id's of the selected people:
     return((from p in model.AvailableRecipes where p.IsSelected select p.Id).ToList());
 }
Esempio n. 18
0
        public static void UpdateMeal(List <RecipeViewModel> mealRecipes, Meal updatedMeal, MealViewModel originalMealView)
        {
            var originalMeal = originalMealView.GetMeal();
            var database     = new SQLiteDataService();

            database.Initialize();
            database.UpdateMeal(updatedMeal);
            database.DeleteRecipesByMeal(originalMeal.Id);
            mealRecipes.Select(recipe => new RecipeByMeal
            {
                RecipeId    = recipe.GetRecipe().Id,
                MealId      = originalMeal.Id,
                CreatedDate = DateTime.Now,
                CreatedBy   = currentUser.Username
            }).ToList().ForEach(rbm =>
            {
                database.AddRecipeByMeal(rbm);
            });
            database.Close();
            var allUserMealsList = AllUsersMeals.ToList();

            AllUsersMeals.Clear();
            var index = allUserMealsList.IndexOf(originalMealView);

            allUserMealsList.RemoveAt(index);
            allUserMealsList.Insert(index, new MealViewModel(updatedMeal));
            allUserMealsList.ForEach(mVM => AllUsersMeals.Add(mVM));
        }
Esempio n. 19
0
        public ViewResult Create()
        {
            MealViewModel mealViewModel = Mapper.Map <Meal, MealViewModel>(new Meal());

            return(View(mealViewModel));
        }
Esempio n. 20
0
        public ActionResult Meals(MealViewModel model)
        {
            //this.postsService.Update()

            return(this.RedirectToAction("Meals"));
        }
Esempio n. 21
0
 public MealViewModel Post([FromBody] MealViewModel value)
 {
     return(_mealAppService.Insert(value));
 }
 public ViewTrayPageViewModel(MealViewModel meal)
 {
     Meal = meal;
 }
Esempio n. 23
0
        public ActionResult AddMeal()
        {
            var MealToAdd = new MealViewModel();

            return(View("MealCreateForm", MealToAdd));
        }
Esempio n. 24
0
 public ActionResult Create(MealViewModel model)
 {
     return(RedirectToAction("Index"));
 }
Esempio n. 25
0
        // GET: Meals/Details/5
        public async Task <IActionResult> Details(int?id, int?ingredientID)
        {
            if (id == null)
            {
                return(NotFound());
            }

            if (ingredientID != null)
            {
                ViewBag.ingredientID = ingredientID;
            }
            else
            {
                ViewBag.ingredientID = -1;
            }

            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            var meal = await _context.Meal
                       .Include(m => m.MealType)
                       .Include(m => m.UserMeals)
                       .SingleOrDefaultAsync(m => m.MealID == id);

            var Ingredients = await _context.Ingredient.Where(i => i.MealID == id).ToListAsync();

            int count = meal.UserMeals.Count(us => us.Stars != null && us.Stars != 0);

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

            MealViewModel mealView = new MealViewModel();

            mealView.Ingredients  = Ingredients;
            mealView.Description  = meal.Description;
            mealView.Difficulty   = meal.Difficulty;
            mealView.MakeTime     = meal.MakeTime;
            mealView.MealID       = meal.MealID;
            mealView.MealTypeName = meal.MealType.Name;
            mealView.Name         = meal.Name;
            mealView.Picture      = meal.Picture;
            mealView.Stars        = meal.UserMeals.Sum(um => (float)(um.Stars)) / count;

            if (meal == null)
            {
                return(NotFound());
            }

            var ratingStars = new List <SelectListItem>();

            for (int i = 1; i <= 5; i++)
            {
                ratingStars.Add(new SelectListItem {
                    Text = i.ToString(), Value = i.ToString()
                });
            }

            if (user != null)
            {
                ViewBag.In = true;
                UserMeal userMeal = await _context.UserMeal.Where(us => us.MealID == meal.MealID && us.RecipeBook == true).SingleOrDefaultAsync();

                UserMeal userMeal2 = await _context.UserMeal.Where(us => us.MealID == meal.MealID && us.UserID == user.Id).SingleOrDefaultAsync();

                if (userMeal2 != null)
                {
                    if (userMeal2.Stars != null && userMeal2.Stars <= 0)
                    {
                        ViewBag.Stars   = true;
                        ViewBag.Ratings = ratingStars;
                    }
                    else
                    {
                        ViewBag.Stars = false;
                    }

                    if (userMeal2.Favourite == true)
                    {
                        ViewBag.Favourite = false;
                    }
                    else
                    {
                        ViewBag.Favourite = true;
                    }

                    if (userMeal2.AlreadyMade == true)
                    {
                        ViewBag.AlreadyMade = false;
                    }
                    else
                    {
                        ViewBag.AlreadyMade = true;
                    }
                }
                else
                {
                    ViewBag.Stars       = true;
                    ViewBag.Ratings     = ratingStars;
                    ViewBag.Favourite   = true;
                    ViewBag.AlreadyMade = true;
                }

                if (userMeal != null && userMeal.UserID == user.Id)
                {
                    ViewBag.owner = true;
                }
                else
                {
                    ViewBag.owner = false;
                }
            }
            else
            {
                ViewBag.owner       = false;
                ViewBag.Favourite   = false;
                ViewBag.AlreadyMade = false;
                ViewBag.In          = false;
            }

            return(View(mealView));
        }
Esempio n. 26
0
        public async Task <IActionResult> Index(int?week = 0)
        {
            //var fIds = listOperation.Result.Select(x => x.FoodId).Distinct().ToList();
            //var todIds = listOperation.Result.Select(x => x.TimeOfDayId).Distinct().ToList();

            DateTime today            = DateTime.Today;
            int      currentDayOfWeek = (int)today.DayOfWeek;
            DateTime sunday           = today.AddDays(-currentDayOfWeek);
            DateTime monday           = sunday.AddDays(1 + (double)week * 7);

            if (currentDayOfWeek == 0)
            {
                monday = monday.AddDays(-7);
            }
            var weekDays = Enumerable.Range(0, 7).Select(days => monday.AddDays(days)).ToList();

            ViewBag.WeekDay = weekDays;

            var dlistOperation = await _bo.FilterAsync(x => x.ProfileId == new Guid("00000000-0000-0000-0000-000000000001") && x.Day >= weekDays[0] && x.Day <= weekDays[6] && x.IsDeleted == false);

            if (!dlistOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = dlistOperation.Exception.Message
                }));
            }

            var lst = new List <MealViewModel>();

            foreach (var item in dlistOperation.Result)
            {
                lst.Add(MealViewModel.Parse(item));
            }

            var flistOperation = await _fbo.ListAsync();

            if (!flistOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = flistOperation.Exception.Message
                }));
            }
            var foods = new List <FoodViewModel>();

            foreach (var item in flistOperation.Result)
            {
                foods.Add(FoodViewModel.Parse(item));
            }
            ViewBag.Foods = foods;

            var todlistOperation = await _todbo.ListAsync();

            if (!todlistOperation.Success)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = todlistOperation.Exception.Message
                }));
            }
            var tods = new List <TimeOfDayViewModel>();

            foreach (var item in todlistOperation.Result)
            {
                tods.Add(TimeOfDayViewModel.Parse(item));
            }
            ViewBag.TimesOfDay = tods.ToList();

            ViewData["week"] = week;
            return(View(lst));
        }