示例#1
0
        public void Initialize()
        {
            if (!wasInitialized)
            {
                user = IsolatedStorage.ReadValue<User>(Constants.CacheKeys.User);
                currentDate = IsolatedStorage.ReadValue<DateTime>(Constants.CacheKeys.CurrentDate);
                RunInBackground(() =>
                {
                    eatenFood = IsolatedStorage.ReadValue<List<Food>>(Constants.CacheKeys.EatenFood);
                    waterToday = IsolatedStorage.ReadValue<int>(Constants.CacheKeys.WaterToday);
                    goal = IsolatedStorage.ReadValue<Goal>(Constants.CacheKeys.Goal);
                    plan = IsolatedStorage.ReadValue<DietPlan>(Constants.CacheKeys.DietPlan);
                    if (eatenFood == null)
                        eatenFood = new List<Food>();

                    using (var exersizeRepo = new ExersizesRepository())
                    {
                        spentToday = exersizeRepo.GetForToday();
                    }

                    if (spentToday == null)
                        spentToday = new List<Exersize>();
                });
                
                wasInitialized = true;
            }
        }
示例#2
0
        private void SaveTrainingExecute()
        {
            using (var repo = new TrainingRepository())
            {
                var existing = repo.GetById(training.Id);
                if (existing == null)
                {
                    training = repo.Add(training);
                    Locator.TrainingsPlanStatic.AddTraining(training);
                }
            }

            using (var repo = new ExersizesRepository())
            {
                foreach (var exersize in exersizes)
                {
                    exersize.TrainingId = training.Id;
                    exersize.Id = repo.Add(exersize).Id;
                }
            }
            
            if (NavigationProvider.CanGoBack())
                NavigationProvider.GoBack();
        }
示例#3
0
        protected override void InitializeExecute()
        {
            base.InitializeExecute();
            var parameters = NavigationProvider.GetNavigationParameters();
            if (parameters.ContainsKey(Constants.NavigationParameters.TrainingId))
            {
                int id;
                int.TryParse(parameters[Constants.NavigationParameters.TrainingId], out id);

                using (var repo = new TrainingRepository())
                {
                    Training = repo.GetById(id);
                }

                using (var repo = new ExersizesRepository())
                {
                    Exersizes = new ObservableCollection<Exersize>(repo.GetByTraining(id));
                }

                using (var repo = new PhysicalActivityRepository())
                {
                    foreach (var item in exersizes)
                    {
                        item.Activity = repo.GetById(item.ActivityId);
                    }
                }
            }

            if (Training == null)
            {
                Training = new Training();
                Exersizes = new ObservableCollection<Exersize>();
            }
        }
示例#4
0
        private void DeleteExersizeExecute(Exersize exersize)
        {
            using (var repo = new ExersizesRepository())
            {
                var existing = repo.GetById(exersize.Id);
                if (existing != null)
                {
                    repo.Delete(existing);
                }
            }

            this.Exersizes.Remove(exersize);
            this.Training.Duration = this.Exersizes.Sum(item => item.Duration);
            this.Training.CaloriesMustBurned = this.Exersizes.Sum(item => item.CaloriesSpent);
        }
示例#5
0
 public void DeleteExersize(Exersize exersize)
 {
     if (spentToday.Contains(exersize))
     {
         spentToday.Remove(exersize);
         using (var repo = new ExersizesRepository())
         {
             repo.Delete(exersize);
         }
     }
 }
示例#6
0
        public Exersize DoExersize(Exersize invoked)
        {
            Exersize exersize = invoked.CreateCopy();
            // all calories specified for one kilo per minute
            float caloriesPerBody = 0;
            using (var activityRepo = new PhysicalActivityRepository())
            {
                var activity = activityRepo.GetById(invoked.ActivityId);
                caloriesPerBody = (float)(user.BodyState.Weight * activity.Calories) / 60;
            }
            
            exersize.CaloriesSpent = (int)(invoked.Duration * caloriesPerBody);
            using (var repository = new ExersizesRepository())
            {
                exersize = repository.Add(exersize);
            }


            spentToday.Add(exersize);
            if (goal.Course != Course.LoseWeight)
            {
                int totalSpent = spentToday.Sum(item => item.CaloriesSpent);
                plan.FoodPerDay.DailyCalories = plan.FoodPerDay.NormalPerDay + plan.FoodPerDay.ExtraCaloriesPerDay + totalSpent;
            }

            return exersize;
        }
示例#7
0
 private void CheckCurrentDay()
 {
     if (currentDate == null || currentDate.Value.Date != DateTime.Now.Date)
     {
         currentDate = DateTime.Now;
         eatenFood.Clear();
         spentToday.Clear();
         waterToday = 0;
         IsolatedStorage.WriteValue(Constants.CacheKeys.CurrentDate, currentDate);
         IsolatedStorage.WriteValue(Constants.CacheKeys.EatenFood, eatenFood);
         IsolatedStorage.WriteValue(Constants.CacheKeys.WaterToday, waterToday);
         using (var repo = new ExersizesRepository())
         {
             repo.DeleteOldExersizes();
         }
     }
 }