public IActionResult AddExFromTrainPlan(int headId) { if (headId != 0) { var userId = userManager.GetUserId(HttpContext.User); var trainingDays = dayConverter.ByteToDays(appContext.TrainingPlanHeads.Where(x => x.UserId.Equals(userId)).Select(x => x.TrainingDays).ToList()); var model = new AddExercisesFromPlanViewModel { TrainingDays = trainingDays, HeadId = headId, }; return(View(model)); } return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> AddExFromTrainPlan(AddExercisesFromPlanViewModel model) { if (model != null & model.HeadId != 0) { var trainingPlanSpecs = appContext.TrainingPlanSpecs.Where(x => x.HeadId.Equals(model.PlanHeadId)).ToList(); var userId = userManager.GetUserId(HttpContext.User); int headId = model.HeadId; byte currentDocumentSetCount = 0; List <TrainingSpec> lines; if (trainingPlanSpecs.Count != 0) { lines = appContext.TrainingSpecs.Where(x => x.HeadId.Equals(model.HeadId)).ToList(); if (lines.Count != 0) { currentDocumentSetCount = Convert.ToByte(lines.Max(x => x.Set)); } documentSpecHandler.FillDocument(lines); int lastOrderNum = documentSpecHandler.GetLastOrder(); int step = documentSpecHandler.GetOrderStep(); lines = new List <TrainingSpec>(); foreach (var trainingPlanLine in trainingPlanSpecs) { lines.Add(new TrainingSpec { HeadId = headId, Set = (byte)(trainingPlanLine.Set + currentDocumentSetCount), ExId = trainingPlanLine.ExId, Weight = trainingPlanLine.Weight, Amount = trainingPlanLine.Amount, Order = lastOrderNum += step }); } await appContext.TrainingSpecs.AddRangeAsync(lines).ConfigureAwait(false); await appContext.SaveChangesAsync().ConfigureAwait(false); return(RedirectToAction("ViewTrainingSpecs", new { headId = headId })); } } return(RedirectToAction("Index", "Home")); }