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"));
        }