Exemplo n.º 1
0
        public async Task <TaxCertificate> UpdateAsync(string locationID, TaxCertificate cert, VerifiedUserContext verifiedUser)
        {
            await EnsureUserCanManageLocationResaleCert(locationID, verifiedUser);

            var buyerID = locationID.Split('-')[0];
            var address = await _oc.Addresses.GetAsync <HSAddressBuyer>(buyerID, locationID);

            Require.That(address.xp.AvalaraCertificateID == cert.ID, new ErrorCode("Insufficient Access", 403, $"User cannot modofiy this cert"));
            var updatedCert = await _avalara.UpdateCertificateAsync(cert.ID, cert, address);

            return(updatedCert);
        }
Exemplo n.º 2
0
        public async Task <TaxCertificate> CreateAsync(string locationID, TaxCertificate cert, VerifiedUserContext verifiedUser)
        {
            await EnsureUserCanManageLocationResaleCert(locationID, verifiedUser);

            var buyerID = locationID.Split('-')[0];
            var address = await _oc.Addresses.GetAsync <HSAddressBuyer>(buyerID, locationID);

            var createdCert = await _avalara.CreateCertificateAsync(cert, address);

            var newAddressXP = new
            {
                AvalaraCertificateID         = createdCert.ID,
                AvalaraCertificateExpiration = createdCert.ExpirationDate
            };
            var addressPatch = new PartialAddress
            {
                xp = newAddressXP
            };
            await _oc.Addresses.PatchAsync(buyerID, locationID, addressPatch);

            return(createdCert);
        }
Exemplo n.º 3
0
 public async Task <TaxCertificate> UpdateCertificate(string locationID, [FromBody] TaxCertificate cert)
 {
     return(await _resaleCertCommand.UpdateAsync(locationID, cert, UserContext));
 }