public ActionResult Ligar(MicroondasViewModel microondas) { if (ModelState.IsValid) { microondas.ServerPath = Server.MapPath("~/Alimentos"); var gotResult = false; ActionResult result = null; var cancellation = new CancellationTokenSource(); CancellationToken ct = cancellation.Token; Task.Factory.StartNew(() => { result = Json(_microondasCtrl.Ligar(microondas, NotificarUsuario)); gotResult = true; }, ct); while (!gotResult) { if (!Response.IsClientConnected) { cancellation.Cancel(); _microondasCtrl.Desligar(); return(result); } Thread.Sleep(100); } return(result); } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } }
public string Ligar(MicroondasViewModel microondasVm, Func <int, string, bool> notification) { microondas.Alimento = microondasVm.Alimento; microondas.Tempo = microondasVm.Tempo; microondas.Potencia = microondasVm.Potencia; microondas.Caractere = microondasVm.Caractere; microondas.ServerPath = microondasVm.ServerPath; microondas.TempoPercorrido = microondasVm.TempoPercorrido; microondas.Ligar(notification); return(microondas.Alimento); }