Beispiel #1
0
        public ActionResult AddWeekPlan(string name, int active)
        {
            RecipeRepository repo     = new RecipeRepository(ConnectionString);
            bool             isActive = false;

            //set all other weekplans Active = false;
            if (active == 1)
            {
                isActive = true;
                repo.SetWeekPlanToInactive(User.Id);
            }

            int week = WeekOfYearISO8601(DateTime.Now);

            WeekPlan weekPlan = new WeekPlan
            {
                Name      = name,
                UserId    = User.Id,
                Week      = week,
                CreatedAt = DateTime.Now.ToShortDateString(),
                Active    = isActive
            };

            repo.InsertWeekPlan(weekPlan);

            SetIndexViewData();

            return(Content("ok"));
        }
Beispiel #2
0
        private void SetIndexViewData()
        {
            RecipeRepository repo = new RecipeRepository(ConnectionString);

            WeekPlan activeWeekPlan = new WeekPlan();

            List <WeekPlan> weekPlans = repo.GetWeekPlans(User.Id);

            int weekPlanId = 0;

            foreach (WeekPlan weekPlan in weekPlans)
            {
                if (weekPlan.Active)
                {
                    foreach (WeekItem item in weekPlan.WeekItems)
                    {
                        Recipe recipe = repo.GetRecipe(item.RecipeId);

                        item.Recipe = recipe;

                        weekPlanId = weekPlan.Id;
                    }
                    activeWeekPlan = weekPlan;
                }
            }

            List <MySettings> settings = GetMySettings();

            //antar dagar i veckoplanen
            MySettings firstDay = settings.First(x => x.Key == "FirstDay");
            MySettings days     = settings.First(x => x.Key == "DayCount");

            string[] t = new string[] { "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag" };
            string[] m = new string[Int32.Parse(days.Value)];

            int counter = GetDayInt(firstDay.Value);

            for (int i = 1; i <= Int32.Parse(days.Value); i++)
            {
                if (counter == 8)
                {
                    counter = 1;
                }
                m[(i - 1)] = t[counter - 1];

                counter++;
            }
            ViewBag.WeekDays = m;
            //ViewBag.WeekDays = new string[] { "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag" };

            //Add empty
            activeWeekPlan.WeekItems.Insert(0, new WeekItem {
                Id = 0, Recipe = new Recipe {
                    Name = "-", Id = 0
                }, RecipeId = 0
            });

            ViewBag.WeekPlan = activeWeekPlan;
        }
        private async void WeekPlanPage_OnLoaded(object sender, RoutedEventArgs e)
        {
            if (IsEnabled)
            {
                return;
            }

            await Task.Delay(100);

            QueryResult currWeekPlan = await App.ExecuteQuery("select Wochentag, IDRezepte from Wochenplan");

            _currRecipes         = currWeekPlan.ReturnedRows.Select(a => (int)a[1]).ToArray();
            _currRecipesDistinct = _currRecipes.Distinct().ToArray();

            string currRecipesQuery = $"select ID, Gerichtname from Rezepte where ID = {_currRecipesDistinct[0]}";

            for (int i = 1; i < _currRecipesDistinct.Length; i++)
            {
                currRecipesQuery += $" or ID = {_currRecipesDistinct[i]}";
            }
            QueryResult currRecipes = await App.ExecuteQuery(currRecipesQuery);

            var currWeekPlanObj = new WeekPlan
            {
                Monday = currRecipes.ReturnedRows.FirstOrDefault(a =>
                                                                 a[0].Equals((int)(currWeekPlan.ReturnedRows.FirstOrDefault(b =>
                                                                                                                            b[0].Equals("Montag"))?[1] ?? default(int))))?[1].ToString(),

                Tuesday = currRecipes.ReturnedRows.FirstOrDefault(a =>
                                                                  a[0].Equals((int)(currWeekPlan.ReturnedRows.FirstOrDefault(b =>
                                                                                                                             b[0].Equals("Dienstag"))?[1] ?? default(int))))?[1].ToString(),

                Wednesday = currRecipes.ReturnedRows.FirstOrDefault(a =>
                                                                    a[0].Equals((int)(currWeekPlan.ReturnedRows.FirstOrDefault(b =>
                                                                                                                               b[0].Equals("Mittwoch"))?[1] ?? default(int))))?[1].ToString(),

                Thursday = currRecipes.ReturnedRows.FirstOrDefault(a =>
                                                                   a[0].Equals((int)(currWeekPlan.ReturnedRows.FirstOrDefault(b =>
                                                                                                                              b[0].Equals("Donnerstag"))?[1] ?? default(int))))?[1].ToString(),

                Friday = currRecipes.ReturnedRows.FirstOrDefault(a =>
                                                                 a[0].Equals((int)(currWeekPlan.ReturnedRows.FirstOrDefault(b =>
                                                                                                                            b[0].Equals("Freitag"))?[1] ?? default(int))))?[1].ToString(),

                Saturday = currRecipes.ReturnedRows.FirstOrDefault(a =>
                                                                   a[0].Equals((int)(currWeekPlan.ReturnedRows.FirstOrDefault(b =>
                                                                                                                              b[0].Equals("Samstag"))?[1] ?? default(int))))?[1].ToString(),

                Sunday = currRecipes.ReturnedRows.FirstOrDefault(a =>
                                                                 a[0].Equals((int)(currWeekPlan.ReturnedRows.FirstOrDefault(b =>
                                                                                                                            b[0].Equals("Sonntag"))?[1] ?? default(int))))?[1].ToString()
            };

            DataContext = currWeekPlanObj;

            IsEnabled = true;
        }
Beispiel #4
0
        public void Validate_WeekPlan_Missing_Days()
        {
            // Arrange
            WeekPlan invalidPlan = new WeekPlan()
            {
                StartDate = DateTime.Today.AddDays(1)
            };

            invalidPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(1)
            });
            invalidPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(2)
            });
            invalidPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(3)
            });
            invalidPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(4)
            });
            invalidPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(5)
            });
            invalidPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(6)
            });
            invalidPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(7)
            });

            int i = 0;

            foreach (WeekDay day in invalidPlan.WeekDays)
            {
                if (i != 6)
                {
                    day.AddMeal(validMeal);
                }

                i++;
            }


            // Act
            string errorMessage = invalidPlan.Validate();

            // Assert
            Assert.Equal(Constants.WeekPlanInvalidSmall, errorMessage);
        }
Beispiel #5
0
        public void Validate_WeekPlan_No_DietaryRepresentation()
        {
            // Arrange
            WeekPlan validPlan = new WeekPlan()
            {
                StartDate = DateTime.Today.AddDays(1)
            };

            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(1)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(2)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(3)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(4)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(5)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(6)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(7)
            });

            // Starter does not represent any dietary restrictions
            // The meal is now unsuitable for any dietary restrictions, test should fail
            validMeal.Starter.DietaryRestrictions = 0;

            foreach (WeekDay day in validPlan.WeekDays)
            {
                day.AddMeal(validMeal);
            }

            // Act
            string errorMessage = validPlan.Validate();

            // Assert
            Assert.Equal(Constants.WeekPlanDietaryRepresentation + ", probleem bij dag 1", errorMessage);
        }
Beispiel #6
0
        public void Validate_WeekPlan_Valid_Test()
        {
            // Arrange
            WeekPlan validPlan = new WeekPlan()
            {
                StartDate = DateTime.Today.AddDays(1)
            };

            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(1)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(2)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(3)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(4)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(5)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(6)
            });
            validPlan.WeekDays.Add(new WeekDay()
            {
                MealDate = DateTime.Today.AddDays(7)
            });

            foreach (WeekDay day in validPlan.WeekDays)
            {
                day.AddMeal(validMeal);
            }


            // Act
            string errorMessage = validPlan.Validate();

            // Assert
            Assert.Null(errorMessage);
        }
        /// <summary>
        /// 获取周计划
        /// </summary>
        /// <param name="deviceIp">门禁主机ip</param>
        /// <param name="wPlan">周计划</param>
        /// <returns>true:成功 false:失败</returns>
        public bool GetWeekPlan(string deviceIp, ref WeekPlan wPlan)
        {
            CHDOperate op = GetOPByIP(deviceIp);
            bool       b  = false;

            if (null != op && !string.IsNullOrWhiteSpace(deviceIp))
            {
                if (op.isLinkOn)
                {
                    b = op.GetWeePlan(ref wPlan);

                    return(b);
                }
            }
            TextMsg?.Invoke(string.Format("门禁主机 {0} 设置周计划失败···", deviceIp, DateTime.Now));
            return(false);
        }
Beispiel #8
0
        public void SaveWeekPlan(WeekPlan weekPlan)
        {
            if (weekPlan.Id == 0)
            {
                context.WeekPlans.Add(weekPlan);
            }
            else
            {
                WeekPlan dbEntry = context.WeekPlans
                                   .FirstOrDefault(d => d.Id == weekPlan.Id);

                context.WeekPlans.Remove(dbEntry);
                weekPlan.Id = 0;
                context.WeekPlans.Add(weekPlan);
            }

            context.SaveChanges();
        }
        public async Task <IActionResult> EditWeekplan(int weekplanId)
        {
            var user = await userManager.GetUserAsync(HttpContext.User);

            WeekPlan plan = repository.WeekPlans(user.Email)
                            .FirstOrDefault(wp => wp.Id == weekplanId);

            System.Diagnostics.Debug.WriteLine("Logging my current weekplan from EditWeekplan");
            System.Diagnostics.Debug.WriteLine(JsonConvert.SerializeObject(plan, new JsonSerializerSettings()
            {
                PreserveReferencesHandling = PreserveReferencesHandling.Objects,
                Formatting = Formatting.Indented
            }));


            foreach (WeekDay day in plan.WeekDays)
            {
                foreach (Meal meal in day.Meals)
                {
                    if (meal.StarterId != 0)
                    {
                        meal.Starter = repository.GetDishById(meal.StarterId);
                    }
                    if (meal.MainId != 0)
                    {
                        meal.Main = repository.GetDishById(meal.MainId);
                    }
                    if (meal.DessertId != 0)
                    {
                        meal.Dessert = repository.GetDishById(meal.DessertId);
                    }
                }
            }

            WeekplanViewModel viewModel = new WeekplanViewModel
            {
                WeekPlan = plan
            };

            SaveWeekplanViewModel(viewModel);

            return(View(viewModel));
        }
Beispiel #10
0
        public static async Task <IActionResult> CreateWeekPlan([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "weekplans")] HttpRequest req,
                                                                ILogger log)
        {
            log.LogInformation("CreateWeekPlan triggered....");
            var persistenceService = ServiceFactory.GetPersistenceService();

            try
            {
                string   requestBody = new StreamReader(req.Body).ReadToEnd();
                WeekPlan plan        = JsonConvert.DeserializeObject <WeekPlan>(requestBody);
                return((ActionResult) new OkObjectResult(await persistenceService.AddWeekPlanAsync(plan)));
            }
            catch (Exception e)
            {
                var error = $"CreateWeekPlan failed: {e.Message}";
                log.LogError(error);
                return(new BadRequestObjectResult(error));
            }
        }
        public async Task <IActionResult> SaveWeekplan()
        {
            var user = await userManager.GetUserAsync(HttpContext.User);

            System.Diagnostics.Debug.WriteLine("Logging my current weekplan from SaveWeekplan");
            System.Diagnostics.Debug.WriteLine(JsonConvert.SerializeObject(GetWeekplanViewModel(), new JsonSerializerSettings()
            {
                PreserveReferencesHandling = PreserveReferencesHandling.Objects,
                Formatting = Formatting.Indented
            }));

            WeekplanViewModel viewModel = GetWeekplanViewModel();
            WeekPlan          weekPlan  = viewModel.WeekPlan;

            weekPlan.ChefEmail = user.Email;

            repository.SaveWeekPlan(weekPlan);
            TempData["message"] = $"Weekplan voor {viewModel.dateRange} is opgeslagen";
            DeleteWeekplanViewModel();
            return(RedirectToAction("WeekPlans"));
        }
Beispiel #12
0
        public ActionResult ActiveWeekPlanExists()
        {
            if (User == null)
            {
                return(Content("0"));
            }

            int id = 0;

            //Get week
            int week = WeekOfYearISO8601(DateTime.Now);

            RecipeRepository repo = new RecipeRepository(ConnectionString);

            WeekPlan weekPlan = repo.GetActiveWeekPlan(User.Id);

            if (weekPlan == null)
            {
                //create a new one

                weekPlan = new WeekPlan
                {
                    Name      = week + "",
                    UserId    = User.Id,
                    Week      = week,
                    CreatedAt = DateTime.Now.ToShortDateString(),
                    Active    = true
                };
                repo.InsertWeekPlan(weekPlan);

                weekPlan = repo.GetActiveWeekPlan(User.Id);
            }



            return(Content(weekPlan.Id + ""));
        }
        private WeekplanViewModel GetWeekplanViewModel()
        {
            WeekplanViewModel viewModel = HttpContext.Session
                                          .GetJson <WeekplanViewModel>("WeekplanViewModel");

            if (viewModel == null)
            {
                DateTime today           = DateTime.Today;
                int      daysUntilMonday = ((int)DayOfWeek.Monday - (int)today.DayOfWeek + 7) % 7;

                DateTime nextMonday;
                if (daysUntilMonday == 0)
                {
                    nextMonday = today.AddDays(7);
                }
                else
                {
                    nextMonday = today.AddDays(daysUntilMonday);
                }

                WeekPlan newPlan = new WeekPlan()
                {
                    StartDate = nextMonday
                };

                WeekplanViewModel newViewModel = new WeekplanViewModel
                {
                    WeekPlan = newPlan
                };

                newViewModel.initiate();

                viewModel = newViewModel;
            }

            return(viewModel);
        }
Beispiel #14
0
        public async Task <WeekPlan> AddWeekPlanAsync(WeekPlan weekPlan)
        {
            var container = await GetContainer();

            return(await container.CreateItemAsync <WeekPlan>(weekPlan, new PartitionKey(weekPlan.Id)));
        }
Beispiel #15
0
 public async Task <WeekPlan> UpdateWeekPlanAsync(string id, WeekPlan weekPlan)
 {
     throw new NotImplementedException();
 }
Beispiel #16
0
 public async Task <WeekPlan> AddWeekPlanAsync(WeekPlan weekPlan)
 {
     throw new NotImplementedException();
 }
Beispiel #17
0
        public async Task <WeekPlan> UpdateWeekPlanAsync(string id, WeekPlan weekPlan)
        {
            var container = await GetContainer();

            return(await container.UpsertItemAsync <WeekPlan>(weekPlan, new PartitionKey(id)));
        }