Question

Je fais beaucoup de recherches en essayant de trouver la meilleure façon de communiquer une mission de masse demande POST avec mon application ASP.NET MVC3 sans beaucoup de succès.


Voici le scénario:
Comme je l'ai mentionné, j'ai ASP.NET MVC3 avec des méthodes standard de repos, avec lequel je suis en train de communiquer avec une application de bureau (une autre application écrite en interne). Pour commencer comme un prototype, nous avons utilisé le téléchargement XML force brute document par WebClient et ayant l'analyse syntaxique de l'application de MVC3 dans le document XML. Afin de maintenir ce comportement, nous devrions être en permanence la construction de plusieurs méthodes, l'un pour l'analyse de documents XML, et un pour l'utilisation du modèle standard sur le site. Je voudrais rester loin de que si je peux.


Après toutes mes recherches je suis tombé sur RestSharp et je me demande s'il y a someway à la poignée affectation de masse requêtes POST en utilisant RestSharp. Je voudrais être en mesure de faire quelque chose comme ce qui suit:

Dans l'application MVC3 ...

public class RegistrationRequest {
    public string Email { get; set; }
    public string RequestedUserName { get; set; }

    public bool Register(string domain) {
        // Do registration stuff.
    }
}

public class AccountController : Controller {
    [Authorize,HttpPost]
    public ActionResult Register(IEnumerable<RegistrationModel> models) {
        return models.Any(model => !model.Register(this.Url.DnsSafeHost))
                   ? new HttpStatusCodeResult(400)
                   : new HttpStatusCodeResult(200);
    }
}

Dans l'application bureau ...

public class RegistrationRequest {
    public string Email { get; set; }
    public string RequestedUserName { get; set; }
}

public class RegistrationService {
    public void CreateUsers() {
        List<RegistrationRequest> registrations = new List<RegistrationRequest>();
        // list of requested users built up by app

        var client = new RestClient(baseUrl);
        var request = new RestRequest("Account/Register", Method.POST);
        //request.AddAllMyObjects(registrations);
        var response = client.Execute(request);
    }
}

Quelqu'un peut-il me donner des conseils sur la façon d'y parvenir?

Était-ce utile?

La solution

After looking through the docs and a quick back and forth with John Sheenan, I found that this is not currently possible. I ended up making singular requests to the API we developed. Since this runs in the background, it doesn't really affect the user experience on the desktop app and the requests were must smaller and more succinct anyways.

I found that this actually enabled us to get better results anyways on each individual pass/fail case and handle those appropriately. While it might have been nice, this "one at a time" request actually proved to be better in the end.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top