示例#1
0
        private async Task <ExercisePropertyDto> UpsertPropertyAsync(ExerciseProperty exerciseProperty, int userId)
        {
            if (exerciseProperty is null)
            {
                return(null);
            }

            Exercise exercise =
                await exerciseRepository.GetByIdAsync(exerciseProperty.ExerciseId) ??
                (await exercisePropertyRepository.GetByIdAsync(exerciseProperty.Id)).Exercise;

            if (exercise.TrainingTemplate.CreatorId != userId)
            {
                return(null);
            }

            if (exerciseProperty.Id != 0)
            {
                exerciseProperty =
                    exercise.Properties.FirstOrDefault(p => p.Id == exerciseProperty.Id).Copy(exerciseProperty);

                exerciseProperty = await exercisePropertyRepository.UpdateAsync(exerciseProperty);
            }
            else
            {
                exerciseProperty = await exercisePropertyRepository.AddAsync(exerciseProperty);
            }

            await exercisePropertyRepository.SaveChangesAsync();

            return(mapper.Map <ExerciseProperty, ExercisePropertyDto>(exerciseProperty));
        }
示例#2
0
        public static ExerciseProperty Copy(this ExerciseProperty exerciseProperty, ExerciseProperty exercisePropertyToCopy)
        {
            exerciseProperty.Duration     = exercisePropertyToCopy.Duration;
            exerciseProperty.DurationType = exercisePropertyToCopy.DurationType;
            exerciseProperty.Weight       = exercisePropertyToCopy.Weight;

            return(exerciseProperty);
        }
示例#3
0
 public static ExerciseProperty Clone(this ExerciseProperty exercise)
 {
     return(new ExerciseProperty()
     {
         Duration = exercise.Duration,
         DurationType = exercise.DurationType,
         Weight = exercise.Weight,
     });
 }
示例#4
0
        public async Task <ExercisePropertyDto> GetExercisePropertyAsync(int id, int userId)
        {
            ExerciseProperty property = await exercisePropertyRepository.GetByIdAsync(id);

            if (property?.Exercise.TrainingTemplate.CreatorId != userId)
            {
                return(null);
            }

            return(mapper.Map <ExerciseProperty, ExercisePropertyDto>(property));
        }
示例#5
0
        public async Task <bool> DeletePropertyAsync(int propertyId, int userId)
        {
            ExerciseProperty exerciseProperty = await exercisePropertyRepository.GetByIdAsync(propertyId);

            if (exerciseProperty?.Exercise.TrainingTemplate.CreatorId != userId)
            {
                return(false);
            }

            bool result = await exercisePropertyRepository.DeleteAsync(exerciseProperty);

            await exercisePropertyRepository.SaveChangesAsync();

            return(result);
        }
示例#6
0
        public async Task <ExercisePropertyDto> UpdatePropertyAsync(ExercisePropertyUpdateModel model, int userId)
        {
            ExerciseProperty exerciseProperty = mapper.Map <ExercisePropertyUpdateModel, ExerciseProperty>(model);

            return(await UpsertPropertyAsync(exerciseProperty, userId));
        }