示例#1
0
        /// <summary>
        /// Boton añadir.
        /// </summary>
        /// <param name="sender"></param>
        partial void Add_Touch(UIBarButtonItem sender)
        {
            // Compruebo datos
            if (CheckData())
            {
                // Desactivo tabla
                tabla.UserInteractionEnabled = false;

                // Desactivo botones
                btnAdd.Enabled    = false;
                btnCancel.Enabled = false;

                // Activo carga
                InitCarga();

                // Guardo direccion
                RestManager.Connection().GetData((int)URIS.AddLugar, null, t.Cliente.Direccion.GetJSON(), (arg) =>
                {
                    // Compruebo datos
                    if (!string.IsNullOrWhiteSpace(arg))
                    {
                        // Guardo ID direccion
                        t.Cliente.Direccion.ID_Direccion = int.Parse(arg);
                    }

                    // Continuo
                    lock (l)
                    {
                        Monitor.Pulse(l);
                    }
                });

                // Espero a obtener datos direccion
                lock (l)
                {
                    Monitor.Wait(l);
                }

                // Guardo cliente
                RestManager.Connection().GetData((int)URIS.AddCliente, null, t.Cliente.GetJSON(), (arg) =>
                {
                    // Depuracion
                    Console.WriteLine("ID cliente -> " + arg ?? "null");

                    // Compruebo datos
                    if (!string.IsNullOrWhiteSpace(arg))
                    {
                        // Guardo ID cliente
                        t.Cliente.ID_Cliente = int.Parse(arg);
                    }

                    // Continuo
                    lock (l)
                    {
                        Monitor.Pulse(l);
                    }
                });

                // Espero a obtener datos cliente
                lock (l)
                {
                    Monitor.Wait(l);
                }

                // Guardo tarea
                RestManager.Connection().GetData((int)URIS.AddTarea, null, t.GetJSON(), (arg) =>
                {
                    // Depuracion
                    Console.WriteLine("Tarea guardada");

                    // Continuo
                    lock (l)
                    {
                        Monitor.Pulse(l);
                    }
                });

                // Espero a obtener datos cliente
                lock (l)
                {
                    Monitor.Wait(l);
                }

                // Creo alerta
                UIAlertController alert = UIAlertController.Create("Tarea guardada", "La tarea ha sido guardada con exito!", UIAlertControllerStyle.Alert);

                // Añado accion
                alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, (arg) =>
                {
                    // Vuelve a la view anterior
                    DismissModalViewController(true);
                }));

                // Muestro alerta
                PresentViewController(alert, true, null);
            }
            else
            {
                // Creo alerta
                UIAlertController alert = UIAlertController.Create("Error", "Rellene todos los datos para guardar la tarea", UIAlertControllerStyle.Alert);

                // Añado accion
                alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));

                // Muestro alerta
                PresentViewController(alert, true, null);
            }
        }