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); }
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); }
public async Task <TaxCertificate> UpdateCertificate(string locationID, [FromBody] TaxCertificate cert) { return(await _resaleCertCommand.UpdateAsync(locationID, cert, UserContext)); }