public async Task MedicosAsync(string dni) { if (string.IsNullOrEmpty(dni)) { MessageBox.Show("Ingresar una identificación para continuar.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); txtMedico.Focus(); return; } IndicadorOcupado.Visible = true; DgvHorario.Rows.Clear(); var apiHorario = new ApiHorario(); var horarioMedico = await apiHorario.GetHorario(dni); var error = apiHorario.error; if (error == "OK") { var x = 0; LblNombre.Text = horarioMedico[0].Medico.Nombres + " " + horarioMedico[0].Medico.Apellidos; medicoID = horarioMedico[0].Medico.Id; foreach (Horarios item in horarioMedico) { DgvHorario.Rows.Add(item.Id, item.Fechaatencion, item.Inicioatencion, item.Finatencion, item.Nota, item.Activo); DgvHorario.Rows[x].ReadOnly = true; //DgvHorario.Rows[x].DefaultCellStyle. = true; x++; } } else { var apiMedico = new ApiMedico(); var medico = await apiMedico.MedicosAsync(dni); var error2 = apiMedico.error; if (error2 == "OK") { LblNombre.Text = medico.Nombres + " " + medico.Apellidos; medicoID = medico.Id; } else { IndicadorOcupado.Visible = false; LblNombre.Text = ""; DgvHorario.Rows.Clear(); medicoID = 0; MessageBox.Show(Mensajes.MensajeAlerta + "\n" + error); } } IndicadorOcupado.Visible = false; txtMedico.Focus(); txtMedico.SelectAll(); }
private async void BtnGuardar_Click(object sender, EventArgs e) { if (medicoID <= 0) { MessageBox.Show("Se requiere que busque un medico para continuar", "", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (DgvHorario.Rows.Count <= 0) { MessageBox.Show("Se requiere que agregue una fecha continuar", "", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (MessageBox.Show("¿Desea continuar?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } BtnGuardar.Focus(); DgvHorario.CancelEdit(); DgvHorario.ClearSelection(); int fila = 0; var horariosPOST = new List <Horarios>(); var horariosPUT = new List <Horarios>(); foreach (DataGridViewRow item in DgvHorario.Rows) { if (string.IsNullOrEmpty(item.Cells["DgvHorariofecha"].Value.ToString())) { DgvHorario.Rows[fila].Cells["DgvHorariofecha"].Style.BackColor = Color.Red; MessageBox.Show("Ha dejado la fehca de la fila " + (fila + 1) + " vacia"); return; } if (item.Cells["DgvHorarioHorainicio"].Value == null || string.IsNullOrEmpty(item.Cells["DgvHorarioHorainicio"].Value.ToString())) { DgvHorario.Rows[fila].Cells["DgvHorarioHorainicio"].Style.BackColor = Color.Red; MessageBox.Show("Ha dejado la hora de inicio de la fila " + (fila + 1) + " vacia"); return; } if (string.IsNullOrEmpty(item.Cells["DgvHorarioHorafinal"].Value.ToString())) { DgvHorario.Rows[fila].Cells["DgvHorarioHorafinal"].Style.BackColor = Color.Red; MessageBox.Show("Ha dejado la hora final de la fila " + (fila + 1) + " vacia"); return; } var horaInicio = item.Cells["DgvHorarioHorainicio"].Value.ToString(); var horaFinal = item.Cells["DgvHorarioHorafinal"].Value.ToString(); var fechaHorario = item.Cells["DgvHorariofecha"].Value.ToString(); var activo = Convert.ToBoolean(item.Cells["DgvHorarioActivar"].Value.ToString()); var nota = item.Cells["DgvHorarioNota"].Value != null ? item.Cells["DgvHorarioNota"].Value.ToString() : null; var id = item.Cells["DgvHorarioid"].Value != null?int.Parse(item.Cells["DgvHorarioid"].Value.ToString()) : 0; //Validar fechas if (Convert.ToDateTime(item.Cells["DgvHorariofecha"].Value.ToString()).Date < DateTime.Now.Date && id <= 0) { DgvHorario.Rows[fila].Cells["DgvHorariofecha"].Style.BackColor = Color.Red; MessageBox.Show("La fehca de la fila " + (fila + 1) + " no puede ser menor a la fecha actual"); return; } if (!ValidarHora(horaInicio)) { DgvHorario.Rows[fila].Cells["DgvHorarioHorainicio"].Style.BackColor = Color.Red; MessageBox.Show("La hora de inicio (" + horaInicio + ") de la fila " + (fila + 1) + "\nNo contiene el formato correcto" + "\nFormato: {12:00 a. m.}"); return; } if (!ValidarHora(horaFinal)) { DgvHorario.Rows[fila].Cells["DgvHorarioHorainicio"].Style.BackColor = Color.Red; MessageBox.Show("La hora final (" + horaFinal + ") de la fila " + (fila + 1) + "\nNo contiene el formato correcto" + "\nFormato: {12:00 a. m.}"); return; } if (id <= 0) { horariosPOST.Add( new Horarios { Medicoid = medicoID, Fechaatencion = Convert.ToDateTime(fechaHorario).Date.Date, Inicioatencion = horaInicio, Finatencion = horaFinal, Nota = nota, Fecharegistro = DateTime.Now.Date.Date, Activo = Convert.ToBoolean(activo) }); } else { if (item.DefaultCellStyle.BackColor == Color.WhiteSmoke) { horariosPUT.Add( new Horarios { Id = id, Medicoid = medicoID, Fechaatencion = Convert.ToDateTime(fechaHorario).Date.Date, Inicioatencion = horaInicio, Finatencion = horaFinal, Nota = nota, Fecharegistro = DateTime.Now.Date.Date, Activo = Convert.ToBoolean(activo) }); } } fila++; } var apiHorario = new ApiHorario(); if (horariosPOST.Count > 0) { var respuestaPOST = await apiHorario.PostHorario(horariosPOST); if (!respuestaPOST.Estado) { MessageBox.Show($"{respuestaPOST.Mensaje} {respuestaPOST.Estado}"); } } if (horariosPUT.Count > 0) { var respuestaPUT = await apiHorario.PutHorario(horariosPUT); if (!respuestaPUT.Estado) { MessageBox.Show($"{respuestaPUT.Mensaje} {respuestaPUT.Estado}"); } } var error = apiHorario.error; MessageBox.Show("Datos insertados correctamente.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); }