public async Task <TrainingTemplateDto> CloneAsync(TrainingTemplate template, int userId) { User user = await userService.GetUserEntityByIdAsync(userId); if (template is null || user is null) { return(null); } TrainingTemplate templateClone = template.Clone(); templateClone.CreatorId = userId; TrainingTemplateDto templateDto = await AddTrainingTemplateAsync( mapper.Map <TrainingTemplate, TrainingTemplateModel>(templateClone), userId); if (templateDto is null) { return(null); } templateClone = await traingingTemplateRepository.GetByIdAsync(templateDto.Id); List <Exercise> clonedExercises = template.Exercises.Select(e => e.Clone()).ToList(); templateClone.Exercises = clonedExercises; templateClone = await traingingTemplateRepository.UpdateAsync(templateClone); await traingingTemplateRepository.SaveChangesAsync(); return(mapper.Map <TrainingTemplate, TrainingTemplateDto>(templateClone)); }
public async Task <ScheduledTrainingDto> AddScheduledTraining(ScheduledTrainingModel model, int userId) { TrainingTemplateDto trainingTemplate = await trainingTemplateService.GetTrainingTemplateByIdAsync(model.TemplateId, userId); if (trainingTemplate is null) { return(null); } ScheduledTraining scheduledTraining = mapper.Map <ScheduledTrainingModel, ScheduledTraining>(model); scheduledTraining.TrainingTemplateId = model.TemplateId; scheduledTraining = await scheduledTrainingRepository.AddAsync(scheduledTraining); await scheduledTrainingRepository.SaveChangesAsync(); return(mapper.Map <ScheduledTraining, ScheduledTrainingDto>(scheduledTraining)); }