Esempio n. 1
0
        public UserMeal SelectById(int Id)
        {
            UserMeal result = new UserMeal();

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                string cmdText = "Meal_SelectById";
                using (SqlCommand cmd = new SqlCommand(cmdText, conn))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Id", Id);
                    conn.Open();
                    SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                    if (reader.Read())
                    {
                        int index = 0;
                        result.Id           = reader.GetInt32(index++);
                        result.AccountId    = reader.GetInt32(index++);
                        result.Meal         = reader.GetString(index++);
                        result.Quantity     = reader.GetInt32(index++);
                        result.CreatedDate  = reader.GetDateTime(index++);
                        result.ModifiedDate = reader.GetDateTime(index++);
                    }
                    conn.Close();
                }
            }
            return(result);
        }
Esempio n. 2
0
        public async Task <IActionResult> CreateMeal(long userId, [FromBody] MealDto mealDto)
        {
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            long?mealId = null;

            using (var tx = TransactionScopeBuilder.New())
            {
                var user = dbContext
                           .Set <User>()
                           .First(u => u.Id == userId);

                // NOTE: with DDD it would be a user.AddMeal(date, calories, desc) where inside I'd set the back-ref to User as well (always valid object graph)!
                var meal = new UserMeal()
                {
                    Date        = mealDto.Date,
                    Calories    = mealDto.Calories,
                    Description = mealDto.Description
                };

                user.Meals.Add(meal);

                // it's not NH, so to get the ID we need to save
                await dbContext.SaveChangesAsync();

                mealId = meal.Id;

                tx.Complete();
            }

            return(this.Created(mealId));
        }
Esempio n. 3
0
        async void OnChooseBtnClicked(object sender, EventArgs e)
        {
            double counter = ((Counter)counter1Picker.SelectedItem).Value + ((Counter)counter2Picker.SelectedItem).Value;

            if (usermeal == null)
            {
                usermeal            = new UserMeal();
                usermeal.IDCategory = IDCategorySelected;
                usermeal.IDUser     = StorageManager.GetConnectionInfo().LoginUser.IDUser;
                usermeal.IDMealUnit = SelMapMealUnit.IdMealUnit;
                usermeal.InsertDate = DateTime.UtcNow;
                usermeal.UpdateDate = usermeal.InsertDate;
                usermeal.MealDate   = SelectedDate;
                usermeal.Qty        = counter;
                StorageManager.InsertData <UserMeal>(usermeal);
            }
            else
            {
                usermeal.IDMealUnit = SelMapMealUnit.IdMealUnit;
                usermeal.UpdateDate = usermeal.InsertDate;
                usermeal.Qty        = counter;
                StorageManager.UpdateData <UserMeal>(usermeal);
            }

            await Navigation.PopToRootAsync(true);
        }
Esempio n. 4
0
        public List <UserMeal> SelectByDate(int AccountId)
        {
            List <UserMeal> result = new List <UserMeal>();

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                string cmdText = "Meal_SelectAllByDate";
                using (SqlCommand cmd = new SqlCommand(cmdText, conn))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@AccountId", AccountId);
                    cmd.Parameters.AddWithValue("@Today", 0);
                    conn.Open();
                    SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                    while (reader.Read())
                    {
                        UserMeal model = new UserMeal();
                        int      index = 0;
                        model.Id           = reader.GetInt32(index++);
                        model.AccountId    = reader.GetInt32(index++);
                        model.Meal         = reader.GetString(index++);
                        model.Quantity     = reader.GetInt32(index++);
                        model.CreatedDate  = reader.GetDateTime(index++);
                        model.ModifiedDate = reader.GetDateTime(index++);
                        result.Add(model);
                    }
                    conn.Close();
                }
                return(result);
            }
        }
        public async Task <IActionResult> AddAlreadyMade(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            Meal meal = await _context.Meal.Where(m => m.MealID == id).SingleOrDefaultAsync();

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

            if (userMeal == null)
            {
                try
                {
                    userMeal             = new UserMeal();
                    userMeal.AlreadyMade = true;
                    userMeal.Favourite   = false;
                    userMeal.RecipeBook  = false;
                    userMeal.Stars       = 0;
                    userMeal.MealID      = meal.MealID;
                    userMeal.Meal        = meal;
                    if (user != null)
                    {
                        userMeal.UserID = user.Id;
                        userMeal.User   = user;
                    }

                    _context.Add(userMeal);
                    await _context.SaveChangesAsync();

                    user.UserMeals.Add(userMeal);
                    meal.UserMeals.Add(userMeal);

                    await _context.SaveChangesAsync();
                }
                catch (Exception)
                {
                }

                return(RedirectToAction(nameof(AlreadyMade)));
            }
            try
            {
                userMeal.AlreadyMade = true;
                _context.Update(userMeal);
                await _context.SaveChangesAsync();
            }
            catch (Exception)
            {
            }

            return(RedirectToAction(nameof(AlreadyMade)));
        }
        public async Task <IActionResult> Rate(int?mealID, int Rating)
        {
            if (mealID == null)
            {
                return(NotFound());
            }

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

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

            Meal meal = await _context.Meal.Where(m => m.MealID == mealID).SingleOrDefaultAsync();

            if (userMeal != null)
            {
                userMeal.Stars = Rating;
                _context.Update(userMeal);
                await _context.SaveChangesAsync();
            }
            else
            {
                try
                {
                    userMeal             = new UserMeal();
                    userMeal.AlreadyMade = false;
                    userMeal.Favourite   = false;
                    userMeal.RecipeBook  = false;
                    userMeal.Stars       = Rating;
                    userMeal.MealID      = meal.MealID;
                    userMeal.Meal        = meal;
                    if (user != null)
                    {
                        userMeal.UserID = user.Id;
                        userMeal.User   = user;
                    }

                    _context.Add(userMeal);
                    await _context.SaveChangesAsync();

                    user.UserMeals.Add(userMeal);
                    meal.UserMeals.Add(userMeal);

                    await _context.SaveChangesAsync();
                }
                catch (Exception)
                {
                }
            }

            return(RedirectToAction(nameof(Details), "Meals", new { id = mealID }));
        }
Esempio n. 7
0
        public async void OnClickDeleteButton(object sender, EventArgs e)
        {
            var  item = (Xamarin.Forms.Button)sender;
            Item mode = (Item)(item.CommandParameter);

            for (int i = 0; i < groupedItems.Count; i++)
            {
                foreach (Item it in groupedItems[i])
                {
                    if (mode.ID == it.ID && mode.IDCategory == it.IDCategory)
                    {
                        if (it.IDCategory == 6)
                        {
                            Exercise exercise = conn.Get <Exercise>(it.ID);

                            if (exercise.IDServer == 0)
                            {
                                StorageManager.DeleteData <Exercise>(exercise);
                            }
                            else
                            {
                                exercise.Deleted = 1;
                                StorageManager.UpdateData <Exercise>(exercise);
                            }
                        }
                        else
                        {
                            UserMeal usermeal = conn.Get <UserMeal>(it.ID);

                            if (usermeal.IDServer == 0)
                            {
                                StorageManager.DeleteData <UserMeal>(usermeal);
                            }
                            else
                            {
                                usermeal.Deleted = 1;
                                StorageManager.UpdateData <UserMeal>(usermeal);
                            }
                        }
                        //sss
                        RecreateDataAction();
                        break;
                    }
                }
            }
        }
        public async Task <IActionResult> Post([FromBody] CreateUserMealRestModel model)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user is null)
            {
                return(BadRequest());
            }
            if (ModelState.IsValid)
            {
                var meal = _context.Meals.Where(m => m.Id.Equals(model.MealId)).FirstOrDefault();
                if (meal is null)
                {
                    return(BadRequest());
                }
                var domainModel = new UserMeal
                {
                    Id           = Guid.NewGuid().ToString(),
                    FoodName     = meal.FoodName,
                    Carbohydrate = meal.Carbohydrate,
                    Liqids       = meal.Liqids,
                    Protein      = meal.Protein,
                    Fibre        = meal.Fibre,
                    Energy       = meal.Energy,
                    Category     = meal.Category,
                    Price        = meal.Price,
                    Budget       = model.BudgetAmount,
                    Dependaents  = model.Dependents,
                    MealDate     = model.MealDate,
                    User         = user
                };
                _context.Add(domainModel);
                await _context.SaveChangesAsync();

                domainModel.User = null;
                return(Ok(domainModel));
            }
            return(BadRequest());
        }
Esempio n. 9
0
        public async void OnItemTapped(object sender, ItemTappedEventArgs e)
        {
            if ((info.isTrial) || ((info.ActiveSubscription != null) && (info.ActiveSubscription.EndDate >= DateTime.UtcNow)))
            {
                int mode = ((Item)e.Item).IDCategory;
                if (mode == 6)
                {
                    if (exerPage == null)
                    {
                        exerPage = new AddExercisePage();
                    }
                    exerPage.LoadData(SelectedDate, ((Item)e.Item).ID);
                    await Navigation.PushAsync(exerPage);
                }
                else
                {
                    UserMeal usermeal = conn.Get <UserMeal>(((Item)e.Item).ID);
                    var      item     = (Item)e.Item;

                    if (searchPage == null)
                    {
                        searchPage = new SearchMealPage();
                    }
                    int IDMealSelected = conn.Get <MealUnit>(usermeal.IDMealUnit).IDMeal;
                    searchPage.GetSelectMealPage().CalcUnits(IDMealSelected, usermeal);
                    await Navigation.PushAsync(searchPage.GetSelectMealPage());
                }
            }
            else
            {
                var answer = await App.Current.MainPage.DisplayAlert(Properties.LangResource.subscription, Properties.LangResource.subAlert, Properties.LangResource.yes, Properties.LangResource.no);

                if (answer == true)
                {
                    await Navigation.PushAsync(new ShopPage());
                }
            }
        }
Esempio n. 10
0
        public void OnDeleted(object sender, EventArgs e)
        {
            var selectedItem = (MenuItem)sender;
            var item         = selectedItem.CommandParameter as Item;

            if (item.IDCategory == 6)
            {
                Exercise exercise = conn.Get <Exercise>(item.ID);

                if (exercise.IDServer == 0)
                {
                    StorageManager.DeleteData <Exercise>(exercise);
                }
                else
                {
                    exercise.Deleted = 1;
                    StorageManager.UpdateData <Exercise>(exercise);
                }
            }
            else
            {
                UserMeal usermeal = conn.Get <UserMeal>(item.ID);

                if (usermeal.IDServer == 0)
                {
                    StorageManager.DeleteData <UserMeal>(usermeal);
                }
                else
                {
                    usermeal.Deleted = 1;
                    StorageManager.UpdateData <UserMeal>(usermeal);
                }
            }
            //sss
            RecreateDataAction();
        }
Esempio n. 11
0
        public void CalcUnits(int IDMealSelected, UserMeal usermeal = null)
        {
            // int IDMealSelected = 0;
            SelMapMealUnit = null;
            this.usermeal  = usermeal;
            recordsUnits.Clear();
            // if (usermeal != null)
            // {
            //      IDMealSelected = conn.Get<MealUnit>(usermeal.IDMealUnit).IDMeal;
            //  }
            // DicUnit.Clear();
            IEnumerable <MapMealUnit> mlUnit = conn.Query <MapMealUnit>("SELECT M.IdMealUnit as IdMealUnit , U.Name as UName, M.calories as Calories, M.protein as Protein, M.Carb as Carb, M.fat as Fat, M.satfat as Satfat, M.unsatfat as Unsatfat, M.cholesterol as Cholesterol, M.sugar as Sugar, M.natrium as Natrium, M.potassium as Potassium, M.fiber as Fiber FROM MealUnit as M  JOIN Unit as U ON M.idUnit = U.idUnit WHERE M.IDMeal=" + IDMealSelected);

            SelMapMealUnit = mlUnit.First();


            foreach (MapMealUnit mealunit in mlUnit)
            {
                if (usermeal != null && mealunit.IdMealUnit == usermeal.IDMealUnit)
                {
                    SelMapMealUnit = mealunit;
                }
                recordsUnits.Add(mealunit);
            }

            ClearDetail();
            unitPicker.ItemSelected -= OnUnitChosen;
            unitPicker.SelectedItem  = SelMapMealUnit;
            unitPicker.ItemSelected += OnUnitChosen;
            if (usermeal != null)
            {
                counter1Picker.ItemSelected -= OnCount1Chosen;
                int count = (int)usermeal.Qty;
                counter1Picker.SelectedItem  = DicCount1[count];
                counter1Picker.ItemSelected += OnCount1Chosen;
                counter1Picker.ScrollTo(counter1Picker.SelectedItem, ScrollToPosition.Center, true);

                double dekadika = (usermeal.Qty - Math.Truncate(usermeal.Qty));
                Tuple <double, Counter> bestMatch = null;
                foreach (var ec in DicCount2)
                {
                    var dif = Math.Abs(ec.Value - dekadika);
                    if (bestMatch == null || dif < bestMatch.Item1)
                    {
                        bestMatch = Tuple.Create(dif, ec);
                    }
                }
                counter2Picker.ItemSelected -= OnCount2Chosen;
                counter2Picker.SelectedItem  = bestMatch.Item2;
                counter2Picker.ItemSelected += OnCount2Chosen;
                counter2Picker.ScrollTo(counter2Picker.SelectedItem, ScrollToPosition.Center, true);
                MealDetails();
            }
            else
            {
                counter1Picker.ItemSelected -= OnCount1Chosen;
                counter1Picker.SelectedItem  = DicCount1[0];
                counter1Picker.ItemSelected += OnCount1Chosen;
                counter1Picker.ScrollTo(counter1Picker.SelectedItem, ScrollToPosition.Center, true);
                counter2Picker.ItemSelected -= OnCount2Chosen;
                counter2Picker.SelectedItem  = DicCount2[0];
                counter2Picker.ItemSelected += OnCount2Chosen;
                counter2Picker.ScrollTo(counter2Picker.SelectedItem, ScrollToPosition.Center, true);
            }
        }
Esempio n. 12
0
        public async Task <IActionResult> Create([Bind("MealTypeID,Difficulty,Name,MakeTime,Description,Picture")] Meal meal, IFormFile Picture)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

                MealType mealType = _context.MealType.SingleOrDefault(mt => mt.MealTypeID == meal.MealTypeID);
                meal.MealType = mealType;
                _context.Add(meal);
                await _context.SaveChangesAsync();

                if (Picture != null && Picture.Length > 0)
                {
                    var file      = Picture;
                    var upload    = Path.Combine(_hosting.WebRootPath, "images\\imgMeal");
                    var extension = Path.GetExtension(file.FileName);
                    var fileName  = Path.GetFileName(file.FileName);
                    if (file.Length > 0)
                    {
                        string name       = Path.GetFileNameWithoutExtension(fileName);
                        string myfileName = name + '_' + meal.MealID + extension;

                        using (var fileStream = new FileStream(Path.Combine(upload, myfileName), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);

                            meal.Picture = myfileName;
                            await _context.SaveChangesAsync();
                        }
                    }
                }

                UserMeal userMeal = new UserMeal();
                userMeal.AlreadyMade = false;
                userMeal.Favourite   = false;
                userMeal.RecipeBook  = true;
                userMeal.Stars       = 0;
                userMeal.MealID      = meal.MealID;
                if (user != null)
                {
                    userMeal.UserID = user.Id;
                }
                _context.Add(userMeal);
                await _context.SaveChangesAsync();

                if (user != null)
                {
                    userMeal.User = user;
                    user.UserMeals.Add(userMeal);
                }

                meal.UserMeals.Add(userMeal);
                userMeal.Meal = meal;

                mealType.Meals.Add(meal);

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            ViewBag.MealTypeID = new SelectList(_context.MealType, "MealTypeID", "Name", meal.MealTypeID);
            return(View(meal));
        }
Esempio n. 13
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));
        }