void ReloadList()
 {
     tarefasTable = new TarefasTable(this)
     {
         Tarefas = tarefas
     };
     TarefasTable.Source = tarefasTable;
     TarefasTable.ReloadData();
 }
        EventHandler Ruptura()
        {
            return((sender, e) =>
            {
                var alert = UIAlertController.Create("Ruptura", "Tem certeza que o item esta em ruptura ?", UIAlertControllerStyle.Alert);
                alert.AddAction(UIAlertAction.Create("Nao", UIAlertActionStyle.Cancel, (actionCancel) =>
                {
                    MetricsManager.TrackEvent("CancelRuptura");
                }));

                alert.AddAction(UIAlertAction.Create("Sim", UIAlertActionStyle.Default, (actionOK) =>
                {
                    InvokeOnMainThread(delegate
                    {
                        var gps = LocationHelper.UpdateLocation();
                        if (gps == null)
                        {
                            var alertGps = UIAlertController.Create("GPS Desativado",
                                                                    "Ligue o GPS ou tire do modo aviao para continuar utilizando o sistema", UIAlertControllerStyle.Alert);
                            alertGps.AddAction(UIAlertAction.Create("Ok", UIAlertActionStyle.Default, (defaults) => { }));
                            alertGps.View.TintColor = UIColor.FromRGB(10, 88, 90);
                            PresentViewController(alertGps, true, null);
                        }
                        else
                        {
                            var tarefasCell = ((UIButton)sender).Superview.Superview as TarefasCell;
                            var path = TarefasTable.IndexPathForRowAtPoint(new CoreGraphics.CGPoint(tarefasCell.Frame.X, tarefasCell.Frame.Y));
                            using (var cell = TarefasTable.CellAt(path) as TarefasCell)
                            {
                                var task = cell.GetTarefaInfo();
                                foreach (var itemIDVisita in listIdsPDVs)
                                {
                                    var tbProduto = controller.GetProdutosList(task.DescricaoDaTarefa);
                                    foreach (var produto in tbProduto)
                                    {
                                        var idProduto = produto.ID;
                                        if (controller.IsCorrectIDTarefaLoja(itemIDVisita.IdVisita, produto.ID))
                                        {
                                            var batery = ((int)(UIDevice.CurrentDevice.BatteryLevel * 100F));
                                            if (gps.Location != null)
                                            {
                                                controller.SetRuptura(itemIDVisita.IdVisita,
                                                                      controller.GetProdutos(task.DescricaoDaTarefa).ID, gps.Location.Coordinate.Latitude,
                                                                      gps.Location.Coordinate.Longitude, batery);
                                            }
                                            else
                                            {
                                                controller.SetRuptura(itemIDVisita.IdVisita,
                                                                      controller.GetProdutos(task.DescricaoDaTarefa).ID,
                                                                      LocationHelper.LastLocation.Coordinate.Latitude,
                                                                      LocationHelper.LastLocation.Coordinate.Longitude, batery);
                                            }
                                        }
                                    }
                                }
                                var index = tarefasTable.Tarefas.FindIndex((obj) => obj.DescricaoDaTarefa.Equals(task.DescricaoDaTarefa) &&
                                                                           obj.Categoria.Equals(task.Categoria));
                                TarefasTable.BeginUpdates();
                                tarefasTable.Tarefas.RemoveAt(index);
                                TarefasTable.DeleteRows(new NSIndexPath[] { path }, UITableViewRowAnimation.Left);
                                TarefasTable.EndUpdates();
                                if (tarefas.Count < 1)
                                {
                                    PopUpCheckOutAutomatico();
                                }
                            }
                        }
                    });
#if !DEBUG
                    HockeyApp.MetricsManager.TrackEvent("Ruptura");
#endif
                }));
                alert.View.TintColor = UIColor.FromRGB(10, 88, 90);
                PresentViewController(alert, true, null);
            });
        }