Ejemplo n.º 1
0
 public async Task <int> DeleteItemAsync(DbWorkoutModel item)
 {
     return(await database.DeleteAsync(item));
 }
        public async void Add()
        {
            DbSetModel setModel = new DbSetModel();

            setModel.Date    = DateTime.Now;
            setModel.comment = comment;
            string trainingData = "";

            foreach (var a in repsKgsList)
            {
                trainingData += "| " + a.Reps + "*" + a.Kgs + " |";
            }
            //setModel.trainingData = "3*23 | 13*0 | 12*2";
            string[] ids = exerciseModel.trainingId.Split('_');
            setModel.trainingData = trainingData;
            setModel.trainingId   = exerciseModel.trainingId;


            bool answer = await App.Current.MainPage.DisplayAlert("Is data correct?", trainingData + "\n\n" + comment, "Yes", "No");

            if (!answer)
            {
                return;
            }

            if (setsList.Count != 0)
            {
                if (setsList.First().setDate.Date == DateTime.Now.Date)
                {
                    bool dateAnswer = await App.Current.MainPage.DisplayAlert("Caution!", "You have already done this exercise today, do you want to add else one entry?", "Yes", "No");

                    if (!dateAnswer)
                    {
                        return;
                    }
                }
            }


            try
            {
                await App.SetDatabase.SaveItemAsync(setModel);

                //changing data in workout
                DbWorkoutModel tmpWorkModel = new DbWorkoutModel();
                await App.WorkoutDatabase.CreateTable();

                foreach (var a in await App.WorkoutDatabase.GetItemsAsync())
                {
                    if (a.Id == Convert.ToInt32(ids[0]))
                    {
                        tmpWorkModel = a;
                        break;
                    }
                }
                tmpWorkModel.lastTrainingDate = DateTime.Now;
                await App.WorkoutDatabase.SaveItemAsync(tmpWorkModel);

                //changing data in exercise
                DbExerciseModel tmpExModel = new DbExerciseModel();
                tmpExModel.trainingId       = exerciseModel.trainingId;
                tmpExModel.Title            = exerciseModel.titleExcercice;
                tmpExModel.Id               = Convert.ToInt32(ids[1]);
                tmpExModel.lastTrainingDate = DateTime.Now;
                tmpExModel.amountOfSets     = exerciseModel.amountOfSets;
                //tmpExModel.comment = exerciseModel.comment;
                await App.ExerciseDatabase.SaveItemAsync(tmpExModel);
            }
            catch
            {
                await App.Current.MainPage.DisplayAlert("Oops, something wrong!", "We couldn't save expression to dataBase, write to developer", "OK");
            }

            Comment = "";
            List <RepsKgsModel> tmpKgList = new List <RepsKgsModel>(repsKgsList);

            foreach (var a in tmpKgList)
            {
                a.Kgs  = "";
                a.Reps = "";
            }
            RepsKgsList = tmpKgList;

            OnAppearing(new object(), new EventArgs());
        }
        public async void Save()
        {
            DbWorkoutModel         model     = new DbWorkoutModel();
            List <DbExerciseModel> exercises = new List <DbExerciseModel>();

            if (mainTitle == "" || String.IsNullOrEmpty(mainTitle))
            {
                await App.Current.MainPage.DisplayAlert("Oops!", "You didn't fill Workout title!", "OK");

                return;
            }

            string exercisesNames = "";

            foreach (var a in exerciseList)
            {
                if (a.Title == "" || String.IsNullOrEmpty(a.Title))
                {
                    await App.Current.MainPage.DisplayAlert("Oops!", "You didn't fill all exercises!", "OK");

                    return;
                }
                if (a.amountOfSets <= 0)
                {
                    await App.Current.MainPage.DisplayAlert("Oops!", "In " + a.Title + " exercise amount of sets cannot be <= 0!", "OK");

                    return;
                }

                exercisesNames += a.Title + " *" + a.amountOfSets + " sets\n";
                exercises.Add(a);
            }

            model.Title = mainTitle;


            bool answer = await App.Current.MainPage.DisplayAlert("Caution!", "Do you really want to save " + mainTitle + " with such exercises:\n" + exercisesNames, "Yes", "No");

            if (!answer)
            {
                return;
            }



            //saving to db
            try
            {
                int id = await App.WorkoutDatabase.SaveItemAsync(model);

                foreach (var a in exercises)
                {
                    int tmpid = await App.ExerciseDatabase.SaveItemAsync(a);

                    a.trainingId = id + "_" + tmpid + "_";
                    await App.ExerciseDatabase.SaveItemAsync(a);
                }
            }
            catch
            {
                await App.Current.MainPage.DisplayAlert("Oops, something wrong!", "We couldn't save expression to dataBase, write to developer", "OK");
            }


            await Navigation.PopModalAsync();
        }