Как обновить задачу (изменить историю пользователя) с помощью Rally API?

#c# #.net #web-services #rally

#c# #.net #веб-сервисы #ралли

Вопрос:

Итак, я пытаюсь обновить задачу и изменить историю пользователя, к которой она относится. Это то, что я пытаюсь..

 var toUpdate = new DynamicJsonObject();

// the new User Story
toUpdate["WorkProduct"] = "/hierarchicalrequirement/4567890123";

// the ObjectID of the Task
long oid = 45678912445; 

OperationResult result = _restApi.Update("task", oid, toUpdate);
  

Но получаю эту ошибку: System.Collections.Generic.List'1[System.String]

Комментарии:

1. Я собрал небольшой пример, чтобы воспроизвести то, что вы делаете, и это сработало просто отлично. У вас есть полная трассировка стека вашей ошибки? Для какой версии Rally REST API. Какую сеть вы используете? (Самая последняя версия 1.04)

2. Эй, Кайл, эта ошибка из result. Ошибки в OperationResult, поэтому не уверен, как получить дополнительную информацию

3. Должно быть, это была какая-то ошибка строки, которую я пропустил. Теперь это работает. спасибо за проверку!

4. @robnardo, Опубликуй, что ты сделал, чтобы исправить это, и прими это как ответ.

5. Это был дефект, который был исправлен в версиях 1.06 библиотеки.

Ответ №1:

Это то, над чем я должен был работать до исправления ошибок, о которых сообщил Кайл Морс..

 public string ProxyUpdateTask(Task myTask, string strWorkProduct)
    {

        var message = @"<span style=""color:green;"">SUCCESS</span>";
        const string errPrefix = @"<span style=""color:red;"">ERROR</span>";

        var toUpdate = new DynamicJsonObject();

        long oid;
        Int64.TryParse(myTask.ObjectId, out oid);

        toUpdate["WorkProduct"] = String.Format("/hierarchicalrequirement/{0}", myTask.UserStoryId);


        try
        {
            var result = _restApi.Update("task", oid, toUpdate);
            if (!result.Success) 
                message = String.Format(@" {2} updating (ObjectID={0}) failed. {1}", myTask.ObjectId, result.Errors, errPrefix);
        }
        catch (WebException ex)
        {
            message = String.Format(" {0} - {1}", errPrefix, ex.Message);
        }
        catch (Exception ex)
        {
            message = String.Format(" {0} - {1}", errPrefix, ex.Message);
        }

        return message;

    }