public async Task <IActionResult> Put(long id, [FromBody] TaxRateForm model)
        {
            if (ModelState.IsValid)
            {
                var taxRate = await _taxRateRepository.Query().FirstOrDefaultAsync(x => x.Id == id);

                if (taxRate == null)
                {
                    return(NotFound());
                }

                taxRate.Name              = model.Name;
                taxRate.TaxClassId        = model.TaxClassId;
                taxRate.CountryId         = model.CountryId;
                taxRate.StateOrProvinceId = model.StateOrProvinceId;
                taxRate.ZipCode           = model.ZipCode;
                taxRate.Rate              = model.Rate;

                await _taxRateRepository.SaveChangesAsync();

                return(Accepted());
            }

            return(BadRequest(ModelState));
        }
        public async Task <IActionResult> Post([FromBody] TaxRateForm model)
        {
            if (ModelState.IsValid)
            {
                var tagRate = new TaxRate
                {
                    Name              = model.Name,
                    TaxClassId        = model.TaxClassId,
                    CountryId         = model.CountryId,
                    StateOrProvinceId = model.StateOrProvinceId,
                    Rate              = model.Rate
                };

                _taxRateRepository.Add(tagRate);
                await _taxRateRepository.SaveChangesAsync();

                return(CreatedAtAction(nameof(Get), new { id = tagRate.Id }, null));
            }
            return(BadRequest(ModelState));
        }
        public async Task <IActionResult> Get(long id)
        {
            var taxRate = await _taxRateRepository.Query().FirstOrDefaultAsync(x => x.Id == id);

            if (taxRate == null)
            {
                return(NotFound());
            }

            var model = new TaxRateForm
            {
                Id                = taxRate.Id,
                Name              = taxRate.Name,
                TaxClassId        = taxRate.TaxClassId,
                CountryId         = taxRate.CountryId,
                StateOrProvinceId = taxRate.StateOrProvinceId,
                Rate              = taxRate.Rate
            };

            return(Json(model));
        }