Exemple #1
0
        public override async Task <ValidationResult> ValidateAsync(ValidationContext <IUpdateEpisodeModel> context, CancellationToken cancellation = default)
        {
            Episode?episode = await _episodeRepository.GetByOrDefaultAsync(x => x.Id == context.InstanceToValidate.Id);

            if (episode == null)
            {
                throw new EntityNotFoundException <Episode>(context.InstanceToValidate.Id);
            }

            episode = await _episodeRepository.GetByOrDefaultAsync(x => x.Name == context.InstanceToValidate.Name && x.Id != context.InstanceToValidate.Id);

            if (episode != null)
            {
                throw new CannotUpdateEpisodeEpisodeWithSameNameAlreadyExistException(context.InstanceToValidate.Id, context.InstanceToValidate.Name);
            }

            return(await base.ValidateAsync(context, cancellation));
        }
        private async Task ValidateEpisodeAlreadyExists(ValidationContext <ICreateEpisodeModel> context)
        {
            Episode episode = await _episodeRepository.GetByOrDefaultAsync(x => x.Name == context.InstanceToValidate.Name);

            if (episode != null)
            {
                throw new EntityAlreadyExistException(context.InstanceToValidate.Name);
            }
        }
Exemple #3
0
        private async Task ValidateEpisodesExistence(ValidationContext <ICreateCharacterModel> context)
        {
            List <string> episodeNames = context.InstanceToValidate.Episodes;

            foreach (string episodeNameToAssign in episodeNames)
            {
                Episode?episode = await _episodeRepository.GetByOrDefaultAsync(x => x.Name == episodeNameToAssign);

                if (episode == null)
                {
                    throw new CannotCreateCharacterWithNotExistedEpisodeException(episodeNameToAssign);
                }
            }
        }