示例#1
0
        public ResponseResult CreateCurrency(string currencyCode)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(currencyCode))
                {
                    return(new ResponseResult("Название валюты не задано"));
                }

                if (currencyCode.Length != 3)
                {
                    return(new ResponseResult("Валюта задана не в международном формате"));
                }

                if (_currencyRepository.CreateCurrency(currencyCode))
                {
                    return(new ResponseResult
                    {
                        IsSuccess = true
                    });
                }

                return(new ResponseResult("Данная валюта уже существует"));
            }
            catch (Exception e)
            {
                const string errorMessage = "Ошибка при создании валюты";
                _loggingService.Log(this, errorMessage, LogType.Error, e);
                return(new ResponseResult <IEnumerable <string> >(errorMessage));
            }
        }
示例#2
0
        public async Task <ActionResult <CurrencyVM> > CreateCurrency(CurrencyVM currencyVM)
        {
            try
            {
                if (currencyVM == null)
                {
                    return(BadRequest());
                }

                // Add custom model validation error
                Currency currency = await currencyRepository.GetCurrencyByname(currencyVM.Currency);

                if (currency != null)
                {
                    ModelState.AddModelError("Name", $"Currency name: {currencyVM.Currency.Name} already in use");
                    return(BadRequest(ModelState));
                }

                currencyVM = await currencyRepository.CreateCurrency(currencyVM);

                return(CreatedAtAction(nameof(GetCurrency),
                                       new { id = currencyVM.Currency.Id }, currencyVM));
            }
            catch (DbUpdateException Ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  Ex.InnerException.Message));
            }
        }