Массовое назначение с использованием RestSharp, POST-запрос - MVC3

Я проводил много исследований, пытаясь найти лучший способ передать запрос POST массового назначения с моим приложением ASP.NET MVC3 без особого успеха.


Вот сценарий:
Как я уже упоминал, у меня есть ASP.NET MVC3 со стандартными методами REST, с помощью которого я пытаюсь установить связь с настольным приложением (другое приложение, написанное собственными силами). Для начала в качестве прототипа мы просто использовали загрузку XML-документов методом грубой силы через WebClient, а затем приложение MVC3 анализировало XML-документ. Чтобы поддерживать такое поведение, мы должны постоянно создавать несколько методов, один для разбора XML-документа, а другой для использования стандартной модели на веб-сайте. Я хотел бы держаться подальше от этого, если смогу.


После всех моих исследований я наткнулся на RestSharp, и мне интересно, есть ли способ обработать POST-запросы массового назначения с помощью RestSharp. Я хотел бы иметь возможность сделать что-то вроде следующего:

В приложении 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);
    }
}

В настольном приложении...

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);
    }
}

Кто-нибудь может дать мне какие-нибудь советы о том, как этого добиться?

1 ответ

Решение

Посмотрев документы и перемотав туда-сюда Джона Шинана, я обнаружил, что в настоящее время это невозможно. В итоге я сделал особые запросы к API, который мы разработали. Так как это работает в фоновом режиме, это на самом деле не влияет на взаимодействие с пользователем в настольном приложении, и запросы в любом случае должны быть меньше и более краткими.

Я обнаружил, что это на самом деле позволило нам в любом случае получить лучшие результаты по каждому отдельному случаю "успешно / неудачно" и обрабатывать их соответствующим образом. Хотя это могло бы быть приятно, этот запрос "по одному за раз" в итоге оказался лучше.

Другие вопросы по тегам