public async Task <BaseModel> CreateAsync(PrintingEditionsModelItem model) { var response = new BaseModel(); if (model == null) { response.Errors.Add(ErrorConstants.ModelIsNull); return(response); } var changedPrice = _currencyConverter.Convert(model.Currency, CurrencyEnum.Currency.USD, model.Price); var product = PrintingEditionMapper.MapModelToEntity(model, changedPrice); var result = await _printingEditionRepository.CreateAsync(product); if (!result) { response.Errors.Add(ErrorConstants.ImpossibleToCreateProduct); } response = await CreateAuthorInProductAsync(product, model.Authors); return(response); }
public async Task <PrintingEditionModel> CreatePrintingEditionAsync(PrintingEditionModelItem printingEditionsModelItem) { var responseModel = ValidateData(printingEditionsModelItem); if (responseModel.Errors.Any()) { return(responseModel); } var printingEdition = _mapperHelper.Map <PrintingEditionModelItem, PrintingEdition>(printingEditionsModelItem); printingEdition.Price = _currencyConverterHelper.Convert(printingEditionsModelItem.Currency, Enums.Currency.USD, printingEditionsModelItem.Price); printingEdition.Currency = Enums.Currency.USD; var authorsId = printingEditionsModelItem.Authors.Select(x => x.Id).ToArray(); if (authorsId == null || !authorsId.Any()) { responseModel.Errors.Add(Constants.Errors.InvalidData); return(responseModel); } var createResult = await _printingEditionRepository.CreateAsync(printingEdition); if (createResult.Equals(0)) { responseModel.Errors.Add(Constants.Errors.FailedCreate); return(responseModel); } var createAuthorsInPrintingEditionResult = await _authorInPrintingEditionRepository.CreateAuthorsInPrintingEditionAsync(printingEdition.Id, authorsId); if (createAuthorsInPrintingEditionResult.Equals(0)) { responseModel.Errors.Add(Constants.Errors.FailedCreate); return(responseModel); } return(responseModel); }
public async Task <decimal> ConvertPriceAsync(ConverterModel converterModel) { var resultConverting = _currencyConverterHelper.Convert(converterModel.CurrencyFrom, converterModel.CurrencyTo, converterModel.Price); return(resultConverting); }