Как обновить значение AccountNumber по ContactId в XERO API, используя C# - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь установить контакт с Xero api: я пытаюсь обновить AccountNumber, значение равно нулю.

Это код для метода обновления. Я передаю значение с ContactId и AccountNumber.

        var xContact = new XeroContact
        {
            AccountNumber = null,
            ContactId = CustomerGUID
        };
        var request = new XeroContactRequest { AuthToken = _authHelper.AccessToken, Search = "", TenantId = _authHelper.TenantId, CustomerGUID = CustomerGUID, Contact = xContact };
        var xeroCustomerResult = _xeroContactBusiness.UpdateContact(request);

функция обновления:

public IResult<XeroContact> UpdateContact(XeroContactRequest data)
        {
            var result = new Result<XeroContact>();
            try
            {
                if (data == null || string.IsNullOrEmpty(data.AuthToken) || string.IsNullOrEmpty(data.TenantId)) throw new ArgumentNullException("data is required");

                var client = new RestClient(BaseUrl);
                var method = string.Format("/{0}/{1}", _apiMethod, data.CustomerGUID);
                var request = new RestRequest(method, Method.POST);

                request.AddHeader("Authorization", string.Format("Bearer {0}", data.AuthToken));
                request.AddHeader("Accept", "application/json");
                request.AddHeader("Xero-tenant-id", data.TenantId);

                var postData = JsonConvert.SerializeObject(data.Contact);
                request.AddJsonBody(postData);                                          
                var response = client.Execute(request);

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new Exception(ParseError(response.Content));
                }
            }
            catch (Exception ex)
            {
                result.HasData = false;
                result.Data = null;
                result.Error = ex;
            }       
            return result;
        }

Не могли бы вы помочь мне понять, что я делаю неправильно? Как я могу обновить AccountNumber по ContactId. Спасибо!

1 Ответ

0 голосов
/ 16 марта 2020

Я решил эту проблему ниже, просто нужно отправить ContactId и те параметры, которые необходимо обновить. Здесь поле «AccountNumber» необходимо обновить. Спасибо!

        var body = new
        {
            ContactId = data.CustomerGUID,
            AccountNumber=""
        };

        var postData = JsonConvert.SerializeObject(body);
        request.AddJsonBody(postData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...