Example #1
0
        public async Task <IActionResult> Create([FromForm] CurrencyCreateViewModel model)
        {
            IEnumerable <CurrencyCreateViewModel> currencies = null;
            var myCurrency = _DBcontext.Currency.FirstOrDefault(c => c.Code == model.Code);

            if (myCurrency != null)
            {
                return(RedirectToAction(nameof(Index)));
            }
            var responseCurrencies = await GetCurrency();

            if (responseCurrencies == null)
            {
                return(BadRequest("Something went wrong. Can't get exchange rate."));
            }

            if (ModelState.IsValid)
            {
                decimal nationalCurrencyRate = _DBcontext.Currency.FirstOrDefault(c => c.Code == _conf.GetValue <int>("NationalCurrencyCode")).Rate;
                CurrencyApiResponseModel existingCurrency = responseCurrencies.FirstOrDefault(c => c.r030 == model.Code);
                Currency currency = _mapper.Map <CurrencyApiResponseModel, Currency>(existingCurrency);
                currency.UpdatedAt = DateTime.Now;
                currency.Rate      = nationalCurrencyRate / currency.Rate;
                if (!await _context.AddAsync(currency))
                {
                    return(BadRequest("Something went wrong. Currency is not added."));
                }
                return(RedirectToAction(nameof(Index)));
            }

            currencies         = _mapper.Map <IEnumerable <CurrencyApiResponseModel>, IEnumerable <CurrencyCreateViewModel> >(responseCurrencies);
            ViewBag.Currencies = currencies;
            return(View(model));
        }
 public IActionResult Create(CurrencyCreateViewModel model)
 {
     if (ModelState.IsValid)
     {
     }
     return(View());
 }
        public async Task <IActionResult> Create([FromBody] CurrencyCreateViewModel input)
        {
            var user     = User.GetDetails();
            var currency = new Currency(input.Name, input.Code, input.Description, input.Status, user.Id);

            if (await _unitOfWork.Currencies.AnyAsync(currency))
            {
                return(BadRequest("Currency Already Exists"));
            }

            _unitOfWork.Currencies.Add(currency);
            await _unitOfWork.CompleteAsync(user.Id);

            return(Ok(currency));
        }