Пример #1
0
        public async Task <PrintingEditionModel> AddAsync(AddOrUpdatePrintingEditionModel model)
        {
            if (model is null)
            {
                throw new ServerException(HttpStatusCode.BadRequest,
                                          ExceptionMessage.EMPTY_PRINTING_EDITION);
            }

            var printingEditionModel = _mapper.Map <PrintingEditionModel>(model);

            printingEditionModel.Authors = model.Authors
                                           .Select(x => new AuthorInPrintingEditionModel(new Guid(x), printingEditionModel.Id));

            var converted = ConvertCurrencyToUSD(printingEditionModel);

            var printingEdition = _mapper.Map <PrintingEdition>(converted);

            if (await _printingEditionRepository.ExistsAsync(printingEdition.Id))
            {
                throw new ServerException(HttpStatusCode.BadRequest,
                                          ExceptionMessage.PRINTING_EDITION_ALREADY_EXISTS);
            }

            var added = await _printingEditionRepository.AddAsync(printingEdition);

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

            return(mapped);
        }