public ActionResult SavedAgenda() { if (Session["UserID"] != null) { StartSchemaViewModel startSchemaViewModel = new StartSchemaViewModel(); using (var db = new DatabaseContext()) { int userId = int.Parse(Session["UserID"].ToString()); List <Run> runs = db.Runs.Where(x => x.UserId == userId).ToList(); if (runs.Count == 0) { return(RedirectToAction("CreateSchema", "StartSchema")); } else { List <StartSchemaRun> runViewModels = new List <StartSchemaRun>(); int runDetailsId = runs[runs.Count - 1].RunDetailsId; int finalRunDayCount = db.RunDetails.FirstOrDefault(x => x.RunDetailsId == runDetailsId).DayCount; foreach (Run r in runs) { r.RunDetails = db.RunDetails.SingleOrDefault(x => x.RunDetailsId == r.RunDetailsId); } for (int i = 1; i <= finalRunDayCount; i++) { string workout = ""; List <Run> trainingsSchemasAppender = runs.Where(x => x.RunDetails.DayCount == i).ToList(); foreach (Run r in trainingsSchemasAppender) { TrainingsActivity trainingsActivity = db.TrainingsActivities.SingleOrDefault(x => x.TrainingsActivityId == r.RunDetails.TrainingsActivityId); workout += r.RunDetails.Duration + " min " + trainingsActivity.Description + " "; } runViewModels.Add(new StartSchemaRun { day = i, workoutSchema = workout, DateWorkout = trainingsSchemasAppender[0].DateTraining }); } startSchemaViewModel.Runs = runViewModels; return(View(startSchemaViewModel)); } } } else { return(RedirectToAction("Index", "Login")); } }
// GET: StartSchema public ActionResult Agenda(StartSchemaIndexView startSchemaIndexView) { if (Session["UserID"] != null) { string tempo = startSchemaIndexView.chosenSchema.Substring(0, 1); string intensity = startSchemaIndexView.chosenSchema.Substring(3, 9); string distance = startSchemaIndexView.chosenSchema.Substring(19, 4); using (var db = new DatabaseContext()) { int userId = int.Parse(Session["UserID"].ToString()); List <Run> removeRuns = db.Runs.Where(x => x.UserId == userId).ToList(); if (removeRuns.Count != 0) { db.Runs.RemoveRange(db.Runs.Where(r => r.UserId == userId)); db.SaveChanges(); } StartSchemaViewModel startSchemaViewModel = new StartSchemaViewModel(); int distanceId = db.TrainingDistances.SingleOrDefault(x => x.Description == distance).TrainingDistanceId; int intensityId = db.TrainingIntensities.SingleOrDefault(x => x.Description.Contains(intensity)).TrainingIntensityId; int tempoId = db.TrainingTempos.SingleOrDefault(x => x.TimesAWeek.ToString() == tempo).TrainingTempoId; //get all the rundetails en the runs belonging to them List <RunDetails> runDetails = db.RunDetails.Where(x => x.TrainingDistanceId == distanceId && x.TrainingIntensityId == intensityId && x.TrainingTempoId == tempoId).ToList(); int[] runDetailsIds = new int[runDetails.Count]; for (int i = 0; i < runDetails.Count; i++) { runDetailsIds[i] = runDetails[i].RunDetailsId; } List <Run> runs = db.Runs.Where(x => x.UserId == userId).ToList(); List <Run> Savedruns = db.Runs.Where(x => x.UserId == userId).ToList(); if (runs.Count == 0) { int trainingsTempo = db.TrainingTempos.SingleOrDefault(x => x.TrainingTempoId == tempoId).TimesAWeek; List <int> counter = new List <int>();; counter.Add(0); if (trainingsTempo == 3) { counter.Add(2); counter.Add(3); counter.Add(2); } if (trainingsTempo == 4) { counter.Add(1); counter.Add(2); counter.Add(2); counter.Add(2); } DateTime today = DateTime.Now.Date; DateTime trainingsDay = DateTime.Now.Date; for (int i = 1; i <= runDetails[runDetails.Count - 1].DayCount; i++) { List <RunDetails> trainingsSchemasAppender = runDetails.Where(x => x.DayCount == i).ToList(); foreach (RunDetails r in trainingsSchemasAppender) { if (trainingsTempo == 3) { trainingsDay = today.AddDays(counter[0]); runs.Add(new Run { RunDetails = r, UserId = Int32.Parse(Session["UserID"].ToString()), DateTraining = trainingsDay }); } if (trainingsTempo == 4) { trainingsDay = today.AddDays(counter[0]); runs.Add(new Run { RunDetails = r, UserId = Int32.Parse(Session["UserID"].ToString()), DateTraining = trainingsDay }); } } today = trainingsDay; if (counter[0] == 0) { counter.RemoveAt(0); } else { counter.Add(counter[0]); counter.RemoveAt(0); } db.Runs.AddRange(runs); foreach (Run r in runs) { Savedruns.Add(r); } db.SaveChanges(); runs.Clear(); } } List <StartSchemaRun> runViewModels = new List <StartSchemaRun>(); for (int i = 1; i <= Savedruns[Savedruns.Count - 1].RunDetails.DayCount; i++) { string workout = ""; List <Run> trainingsSchemasAppender = Savedruns.Where(x => x.RunDetails.DayCount == i).ToList(); foreach (Run r in trainingsSchemasAppender) { TrainingsActivity trainingsActivity = db.TrainingsActivities.SingleOrDefault(x => x.TrainingsActivityId == r.RunDetails.TrainingsActivityId); workout += r.RunDetails.Duration + " min " + trainingsActivity.Description + " "; } runViewModels.Add(new StartSchemaRun { day = i, workoutSchema = workout, DateWorkout = trainingsSchemasAppender[0].DateTraining }); } startSchemaViewModel.Runs = runViewModels; return(View(startSchemaViewModel)); } } else { return(RedirectToAction("Index", "Login")); } }