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(); }
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(); } }