Esempio n. 1
0
        private async void btn_editar_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            timer1.Start(); bool ValidarDisp;
            var resultado4 = MessageBox.Show("Seguro que desea actualizar esta información", "Información", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

            if (resultado4 == DialogResult.OK)
            {
                FirebaseResponse resp = await client.GetTaskAsync("Contador/nodo");

                Contador get = resp.ResultAs <Contador>();

                if (HoraIn == cmb_inicio.Text && HoraFin == cmb_fin.Text)
                {
                    ValidarDisp = false;
                }
                else
                {
                    ValidarDisp = true;
                }

                if (!ValidarDisp)
                {
                    var datoscitas = new citasE
                    {
                        id            = txt_id.Text,
                        Nombre        = txtnombre.Text,
                        Telefono      = MaskTelefono.Text,
                        Tipo_consulta = cmb_TipoConsulta.Text,
                        Justificacion = rich_justificacion.Text,
                        Fecha         = mask_fecha.Text,
                        Hora          = cmb_inicio.Text,
                        HoraFin       = cmb_fin.Text,
                        Doctor        = cmb_doctor.Text,
                        IndexFin      = IndexFin,
                        IndexInicio   = IndexIn,
                        HorarioID     = HorarioID
                    };

                    FirebaseResponse response = await client.UpdateTaskAsync("citas/" + txt_id.Text, datoscitas);

                    citasE result = response.ResultAs <citasE>();

                    MessageBox.Show("Información actualizada correctamente" + result.id);
                    cmb_inicio.Enabled = false;
                    cmb_fin.Enabled    = false;
                }
                else
                {
                    FirebaseResponse ContHorarios = await client.GetTaskAsync("ContadorHorarios/nodo");

                    Contador get2 = ContHorarios.ResultAs <Contador>();
                    var      Hor  = new Horario
                    {
                        Id         = HorarioID,
                        Doctor     = cmb_doctor.Text,
                        HoraInicio = cmb_inicio.SelectedIndex.ToString(),
                        HoraFin    = cmb_fin.SelectedIndex.ToString(),
                        Fecha      = mask_fecha.Text
                    };
                    var datos = new citasE
                    {
                        id            = txt_id.Text,
                        Nombre        = txtnombre.Text,
                        Tipo_consulta = cmb_TipoConsulta.Text,
                        Justificacion = rich_justificacion.Text,
                        Telefono      = MaskTelefono.Text,
                        Fecha         = mask_fecha.Text,
                        Hora          = cmb_inicio.Text,
                        HoraFin       = cmb_fin.Text,
                        Doctor        = cmb_doctor.Text,
                        IndexFin      = IndexFin,
                        IndexInicio   = IndexIn,
                        HorarioID     = HorarioID
                    };
                    //Verificamos la disponibilidad del horario elegido
                    int i   = 0;
                    int cnt = Convert.ToInt32(get2.cnt);
                    while (true)
                    {
                        if (i == cnt)
                        {
                            //Añadiendo la cita en la BD
                            FirebaseResponse response = await client.UpdateTaskAsync("citas/" + txt_id.Text, datos);

                            citasE result = response.ResultAs <citasE>();
                            MessageBox.Show("Información actualizada correctamente" + result.id);

                            //Añadiendo un registro del horario de dicha cita en la BD
                            FirebaseResponse response2 = await client.UpdateTaskAsync("Horarios/" + HorarioID, Hor);

                            cmb_inicio.Enabled = false;
                            cmb_fin.Enabled    = false;

                            //SetResponse response1 = await client.SetTaskAsync("Contador/nodo", obj);

                            //Actualizamos el contador de Horarios
                            var obj2 = new Contador
                            {
                                cnt = Hor.Id
                            };

                            //SetResponse response3 = await client.SetTaskAsync("ContadorHorarios/nodo", obj2);

                            borrar();
                            cmb_inicio.Enabled = false;
                            cmb_fin.Enabled    = false;

                            break;
                        }
                        i++;
                        try
                        {
                            FirebaseResponse resp2 = await client.GetTaskAsync("Horarios/" + i);

                            Horario obj2 = resp2.ResultAs <Horario>();
                            if (cmb_inicio.SelectedIndex == cmb_fin.SelectedIndex)
                            {
                                MessageBox.Show("La hora de inicio y finalización no puede ser igual");
                                break;
                            }
                            else if (cmb_inicio.SelectedIndex > cmb_fin.SelectedIndex)
                            {
                                MessageBox.Show("La hora de inicio no puede ser mayor a la hora de finalización");
                                break;
                            }
                            else
                            {
                                if (obj2.Doctor == datos.Doctor)
                                {
                                    if (obj2.Fecha == datos.Fecha)
                                    {
                                        MessageBox.Show("Llego a comparar");
                                        if (obj2.HoraInicio == cmb_inicio.SelectedIndex.ToString() && obj2.Id != HorarioID)
                                        {
                                            MessageBox.Show("Horario de inicio no disponible con el doctor seleccionado 1");
                                            break;
                                        }
                                        else if (int.Parse(cmb_inicio.SelectedIndex.ToString()) > int.Parse(obj2.HoraInicio) && int.Parse(cmb_inicio.SelectedIndex.ToString()) < int.Parse(obj2.HoraFin) && obj2.Id != HorarioID)
                                        {
                                            MessageBox.Show("Horario de inicio no disponible con el doctor seleccionado 2");
                                            break;
                                        }
                                        else if (obj2.HoraFin == cmb_fin.SelectedIndex.ToString() && obj2.Id != HorarioID)
                                        {
                                            MessageBox.Show("Horario de finalización no disponible con el doctor seleccionado 3");
                                            break;
                                        }
                                        else if (int.Parse(cmb_fin.SelectedIndex.ToString()) > int.Parse(obj2.HoraInicio) && int.Parse(cmb_fin.SelectedIndex.ToString()) < int.Parse(obj2.HoraFin) && obj2.Id != HorarioID)
                                        {
                                            MessageBox.Show("Horario de finalización no disponible con el doctor seleccionado 4");
                                            break;
                                        }
                                        else if (int.Parse(cmb_inicio.SelectedIndex.ToString()) > int.Parse(obj2.HoraInicio) && int.Parse(cmb_fin.SelectedIndex.ToString()) < int.Parse(obj2.HoraFin) && obj2.Id != HorarioID)
                                        {
                                            MessageBox.Show("Horario no disponible con el doctor seleccionado 5");
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        catch
                        {
                        }
                    }
                }
            }
            else
            {
            }
            exportar();
        }
Esempio n. 2
0
        private async void btn_agregar_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            timer1.Start();
            BorrarMensajeError();
            if (validarCampos())
            {
                FirebaseResponse resp = await client.GetTaskAsync("Contador/nodo");

                Contador         get          = resp.ResultAs <Contador>();
                FirebaseResponse ContHorarios = await client.GetTaskAsync("ContadorHorarios/nodo");

                Contador get2 = ContHorarios.ResultAs <Contador>();

                //MessageBox.Show(get.cnt);

                //Llenamos las instancias de clase Cita y clase Horario
                var datos = new citasE
                {
                    id            = (Convert.ToInt32(get.cnt) + 1).ToString(),
                    Nombre        = txtnombre.Text,
                    Tipo_consulta = cmb_TipoConsulta.Text,
                    Justificacion = rich_justificacion.Text,
                    Telefono      = MaskTelefono.Text,
                    Fecha         = mask_fecha.Text,
                    Hora          = cmb_inicio.Text,
                    HoraFin       = cmb_fin.Text,
                    Doctor        = cmb_doctor.Text,
                    IndexFin      = cmb_fin.SelectedIndex.ToString(),
                    IndexInicio   = cmb_inicio.SelectedIndex.ToString(),
                    HorarioID     = (Convert.ToInt32(get2.cnt) + 1).ToString()
                };
                var Hor = new Horario
                {
                    Id         = (Convert.ToInt32(get2.cnt) + 1).ToString(),
                    Doctor     = cmb_doctor.Text,
                    HoraInicio = cmb_inicio.SelectedIndex.ToString(),
                    HoraFin    = cmb_fin.SelectedIndex.ToString(),
                    Fecha      = mask_fecha.Text
                };

                //Verificamos la disponibilidad del horario elegido
                int i   = 0;
                int cnt = Convert.ToInt32(get2.cnt);
                while (true)
                {
                    if (i == cnt)
                    {
                        //Añadiendo la cita en la BD
                        SetResponse response = await client.SetTaskAsync("citas/" + datos.id, datos);

                        citasE result = response.ResultAs <citasE>();

                        //Añadiendo un registro del horario de dicha cita en la BD
                        SetResponse response2 = await client.SetTaskAsync("Horarios/" + Hor.Id, Hor);

                        MessageBox.Show("datos insertados" + result.id);

                        //Actualizamos el contador de Citas
                        var obj = new Contador
                        {
                            cnt = datos.id
                        };

                        SetResponse response1 = await client.SetTaskAsync("Contador/nodo", obj);

                        //Actualizamos el contador de Horarios
                        var obj2 = new Contador
                        {
                            cnt = Hor.Id
                        };

                        SetResponse response3 = await client.SetTaskAsync("ContadorHorarios/nodo", obj2);

                        borrar();
                        exportar();
                        cmb_inicio.Enabled = false;
                        cmb_fin.Enabled    = false;

                        break;
                    }
                    i++;
                    try
                    {
                        FirebaseResponse resp2 = await client.GetTaskAsync("Horarios/" + i);

                        Horario obj2 = resp2.ResultAs <Horario>();
                        if (cmb_inicio.SelectedIndex == cmb_fin.SelectedIndex)
                        {
                            MessageBox.Show("La hora de inicio y finalización no puede ser igual");
                            break;
                        }
                        else if (cmb_inicio.SelectedIndex > cmb_fin.SelectedIndex)
                        {
                            MessageBox.Show("La hora de inicio no puede ser mayor a la hora de finalización");
                            break;
                        }
                        else
                        {
                            if (obj2.Doctor == datos.Doctor)
                            {
                                if (obj2.Fecha == datos.Fecha)
                                {
                                    if (obj2.HoraInicio == datos.IndexInicio)
                                    {
                                        MessageBox.Show("Horario de inicio no disponible con el doctor seleccionado");
                                        break;
                                    }
                                    else if (int.Parse(datos.IndexInicio) > int.Parse(obj2.HoraInicio) && int.Parse(datos.IndexInicio) < int.Parse(obj2.HoraFin))
                                    {
                                        MessageBox.Show("Horario de inicio no disponible con el doctor seleccionado");
                                        break;
                                    }
                                    else if (obj2.HoraFin == datos.IndexFin)
                                    {
                                        MessageBox.Show("Horario de finalización no disponible con el doctor seleccionado");
                                        break;
                                    }
                                    else if (int.Parse(datos.IndexFin) > int.Parse(obj2.HoraInicio) && int.Parse(datos.IndexFin) < int.Parse(obj2.HoraFin))
                                    {
                                        MessageBox.Show("Horario de finalización no disponible con el doctor seleccionado");
                                        break;
                                    }
                                    else if (int.Parse(datos.IndexInicio) > int.Parse(obj2.HoraInicio) && int.Parse(datos.IndexFin) < int.Parse(obj2.HoraFin))
                                    {
                                        MessageBox.Show("Horario no disponible con el doctor seleccionado");
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            }
            else
            {
                MessageBox.Show("Los datos  no se registraron correctamente, Verifique que estén llenos todos los campos " +
                                "y que estén llenados correctamente", "Infomación", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Error.Clear();
            }
        }