示例#1
0
        public async Task UpdateComicAsync(int id, ComicBookInputDto comic)
        {
            var com = await _repository.GetByIdAsync(id);

            if (com == null)
            {
                throw new NullReferenceException();
            }

            _mapper.Map(comic, com);
            if (com.Series.Id != comic.SeriesId)
            {
                var series = await _seriesRepository.GetByIdAsync(comic.SeriesId);

                if (series == null)
                {
                    throw new ValidationException("Invalid series id.");
                }
                com.Series = series;
            }

            com.Validate();
            if (com.HasErrors)
            {
                throw new ValidationException(com.GetFirstError());
            }

            await _repository.UpdateAsync(com);
        }
示例#2
0
        public async Task AddComicAsync(ComicBookInputDto comic)
        {
            var com = _mapper.Map <Data.ComicBook>(comic);

            com.Series = await _seriesRepository.GetByIdAsync(comic.SeriesId);

            if (com.Series == null)
            {
                throw new ValidationException("Invalid Series Id");
            }

            if (!com.ComicBookArtists.Any())
            {
                throw new ValidationException("Artist list cannot be empty");
            }

            com.Validate();

            if (com.HasErrors)
            {
                throw new ValidationException(com.GetFirstError());
            }

            await _repository.AddAsync(com);
        }