J'ai une application ASP .NET MVC qui permet aux utilisateurs de créer des éléments de travail en appelant l'API. Après avoir créé l'élément de travail, je redirige vers une page qui affiche les éléments de travail actuels (un autre appel d'API). Toutefois, la demande d'API pour extraire les éléments de travail est traitée plus rapidement que la création de l'élément de travail, ce qui entraîne l'affichage de l'élément de travail qui vient d'être créé. J'utilise actuellement thread.sleep pour les tests, mais je voudrais des conseils sur la bonne façon de gérer cela.Team Services - La création d'éléments de travail via l'API prend plus de temps que la récupération des éléments de travail courants
Ceci est mon bouton action initiée par le soumettre contrôleur après avoir créé un élément de travail
WICreator addNewWI = new WICreator();
addNewWI.CreateWorkItem(model.SystemTitle, model.SystemDescription);
Thread.Sleep(2000);
return RedirectToAction("WorkItems", "Home");
Et voici l'appel à l'API pour créer un élément de travail
public void CreateWorkItem(string title, string description)
{
string personalAccessToken = "xxx"
string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "xxx", personalAccessToken)));
string project = "xx"
string path = "xx"
Object[] patchDocument = new Object[3];
patchDocument[0] = new { op = "add", path = "/fields/System.Title", value = title };
patchDocument[1] = new { op = "add", path = "/fields/System.AreaPath", value = path };
patchDocument[2] = new { op = "add", path = "/fields/System.Description", value = description };
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);
var patchValue = new StringContent(JsonConvert.SerializeObject(patchDocument), Encoding.UTF8, "application/json-patch+json");
var method = new HttpMethod("PATCH");
var request = new HttpRequestMessage(method, "https://xx.xx.com/xx/_apis/wit/workitems/xxxapi-version=1.0") { Content = patchValue };
var response = client.SendAsync(request).Result;
if (response.IsSuccessStatusCode)
{
var result = response.Content.ReadAsStringAsync().Result;
}
}
}
Vous devez montrer le code pour WICreator –
@ScottChamberlain mis à jour avec la méthode –