Пример #1
0
        public async Task CreateAsync(PrintingEditionModel model)

        {
            var editions = await _printingEditionRepository.GetAsync(edition => edition.Description == model.Description);

            if (editions.Any())
            {
                throw new CustomExeption(Constants.Error.EDITION_EXISTS_DB,
                                         StatusCodes.Status400BadRequest);
            }

            if (!model.AuthorModels.Any())
            {
                throw new CustomExeption(Constants.Error.EDITION_MUST_HAVE_AUTHOR,
                                         StatusCodes.Status400BadRequest);
            }

            var allAuthors = await _authorRepository.GetAllAsync();

            var autors = allAuthors.Where(a => model.AuthorModels.Exists(p => p.Id == a.Id)).ToList();

            if (model.AuthorModels.Count != autors.Count)
            {
                throw new CustomExeption(Constants.Error.NO_AUTHOR_ID_IN_DB_ADD_AUTHOR_FIRST,
                                         StatusCodes.Status400BadRequest);
            }

            var printingEdition = _mapper.Map <PrintingEdition>(model);
            await _printingEditionRepository.CreateAsync(printingEdition);
        }
Пример #2
0
        public async Task DeleteAsync(long id)
        {
            if (await _printingEditionRepository.GetAsync(id) is null)
            {
                throw new UserException(HttpStatusCode.BadRequest, new List <string> {
                    ExceptionsInfo.InvalidId
                });
            }

            await _printingEditionRepository.DeleteAsync(id);
        }
Пример #3
0
        public async Task <PrintingEditionModel> GetAsync(Guid id)
        {
            var printingEdition = await _printingEditionRepository.GetAsync(id);

            if (printingEdition is null)
            {
                throw new ServerException(HttpStatusCode.BadRequest,
                                          ExceptionMessage.PRINTING_EDITION_NOT_FOUND);
            }

            var mapped = _mapper.Map <PrintingEditionModel>(printingEdition);

            return(mapped);
        }
Пример #4
0
        public async Task <PrintingEditionModel> GetByIdAsync(string id)
        {
            var result = Guid.TryParse(id, out var printingEditionId);

            if (!result)
            {
                return(new PrintingEditionModel());
            }
            var printingEdition = await _printingEditionRepository.GetAsync(printingEditionId);

            var printingEditionModel = _printingEditionModelMapper.Map(printingEdition);

            return(printingEditionModel);
        }