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));
        }
Ejemplo n.º 2
0
        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));
        }