Pregunta

He estado investigando mucho tratando de encontrar la mejor manera de comunicar una solicitud de publicación de asignación masiva con mi aplicación ASP.NET MVC3 sin mucho éxito.


Aquí está el escenario:
Como mencioné, tengo un ASP.NET MVC3 con métodos de descanso estándar, con los cuales estoy tratando de comunicarme con una aplicación de escritorio (otra aplicación escrita internamente). Para comenzar con un prototipo, acabamos de usar la carga de documentos XML Brute Force a través de Clima web y luego hacer que la aplicación MVC3 analice el documento XML. Para mantener este comportamiento, tendríamos que construir constantemente múltiples métodos, uno para el análisis de documentos XML y otro para el uso de modelos estándar en el sitio web. Me gustaría mantenerse alejado de eso si puedo.


Después de toda mi investigación, me encontré Reajustar Y me pregunto si hay alguna de alguna manera para manejar solicitudes de publicación de asignación masiva usando RESTSHARP. Me gustaría poder hacer algo como lo siguiente:

En la aplicación 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);
    }
}

En la aplicación de escritorio ...

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

¿Alguien puede darme algún consejo sobre cómo lograr esto?

¿Fue útil?

Solución

Después de mirar a través de los documentos y un rápido de ida y vuelta con John Sheenan, Descubrí que esto no es posible actualmente. Terminé haciendo solicitudes singulares a la API que desarrollamos. Dado que esto se ejecuta en segundo plano, realmente no afecta la experiencia del usuario en la aplicación de escritorio y las solicitudes eran de todos modos más pequeñas y más sucintas.

Descubrí que esto en realidad nos permitió obtener mejores resultados de todos modos en cada caso de aprobación/falla individual y manejarlos de manera adecuada. Si bien podría haber sido bueno, esta solicitud de "una a la vez" realmente resultó ser mejor al final.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top