viernes, 10 de julio de 2020
C# - Servicio Web (.asmx ) Asyncrono
--
Framework 4.6.1
--
.asmx
--
[WebMethod]
public string IntegracionContabilidad(DateTime fecha)
{
var dateTimeNow = DateTime.Now.ToString().Replace(" ", "").Replace("-", "").Replace("/", "").Replace(":", "");
var filePath = "C://IntegracionesContables//IntegracionContabilidad_" + dateTimeNow + ".xml";
var filePathReturn = "IntegracionContabilidad_" + dateTimeNow + ".xml";
new IntegracionesContabilidasBc().GetIntegracionContabilidad(fecha, filePath, filePathReturn);
//este retorno es inmediato (async)
return filePathReturn;
}
--
.BC
--
//Async indica que se hará una llamada asincrona
public async void GetIntegracionContabilidad(DateTime fecha, string filePath, string filePathReturn)
{
//inicializo, e indico que tarea(s) se va(n) a realizar
var task = GetIc(fecha, filePath, filePathReturn);
//Inicio la Tarea
task.Start();
//Activo el await para retornar control a método que nos invocó (IntegracionContabilidad), con un Delay de un milisegundo para que vuelva de inmediato
await Task.Delay(1);
}
//declarado como Task.
public Task<string> GetIc(DateTime fecha, string filePath, string filePathReturn)
{
return new Task<string>(() =>
{
var dt = new IntegracionesContabilidadDac().GetIntegracionContabilidad(fecha);
var structListClass = MapeoContabilidadDataTableToListClass(dt);
var xmlString = ConvierteListaDeClaseContablidadToXmlString(structListClass);
var xmlDoc = ConvierteStringToXml(xmlString);
xmlDoc.Save(filePath);
return "OK";
});
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario