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); }