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));
     }
 }
Example #2
0
 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);
 }