public bool AdicionarMarcacao(string nomeP, DateTime data, string hora, string nomeM) { bool result; try { Pacientes paciente = registosPacientes.Where(p => p.Nome.Equals(nomeP)).First(); //-------------------- Medicos medico = registosMedicos.Where(m => m.Nome.Equals(nomeM)).First(); Marcacao marcacao = new Marcacao(paciente, data, hora, medico, true); registosMarcacoes.Add(marcacao); //BD connect.Open(); SqlCommand query = new SqlCommand(); int results; string queryString; queryString = "INSERT INTO marcacao (data, hora, id_paciente, id_medico)" + " VALUES (@value1, @value2, @value3, @value4);"; query.CommandText = queryString; query.Parameters.AddWithValue("@value1", data); query.Parameters.AddWithValue("@value2", hora); query.Parameters.AddWithValue("@value3", registosPacientes.IndexOf(paciente) + 1); query.Parameters.AddWithValue("@value4", registosMedicos.IndexOf(medico) + 1); query.Connection = connect; results = query.ExecuteNonQuery(); connect.Close(); //--------------------- result = true; } catch (Exception) { result = false; throw new Exception("Médico ou Paciente não registados"); } return(result); }
private void FormMenu_Load(object sender, EventArgs e) { connect.Open(); DataSet dados = new DataSet(); SqlCommand query = new SqlCommand(); SqlDataReader results; string queryString; //Carregar Especialidades queryString = "SELECT nome FROM especialidade"; query.CommandText = queryString; query.Connection = connect; results = query.ExecuteReader(); if (results.HasRows) { while (results.Read()) { Especialidades especialidade = new Especialidades(results["nome"].ToString()); registosEspecialidades.Add(especialidade); } } results.Close(); //---------------------------------------- //Carregar Pacientes queryString = "SELECT nome, telefone, niss" + " FROM paciente"; query.CommandText = queryString; query.Connection = connect; results = query.ExecuteReader(); if (results.HasRows) { while (results.Read()) { Pacientes paciente = new Pacientes( results[0].ToString(), Convert.ToInt32(results[1]), Convert.ToInt32(results[2]) ); registosPacientes.Add(paciente); } } results.Close(); //---------------------------------------- //Carregar Médicos queryString = "SELECT username, password, medico.nome, medico.hora_entrada, medico.hora_saida, medico.niss, especialidade.nome" + " FROM utilizador" + " JOIN medico ON utilizador.Id = medico.id_utilizador" + " JOIN especialidade ON especialidade.Id = medico.id_especialidade"; query.CommandText = queryString; query.Connection = connect; results = query.ExecuteReader(); if (results.HasRows) { while (results.Read()) { Especialidades especialidade = registosEspecialidades .Where(esp => esp.Nome.Equals(results[6].ToString())).First(); Medicos medico = new Medicos( results[0].ToString(), results[1].ToString(), results[2].ToString(), results[3].ToString(), results[4].ToString(), Convert.ToInt32(results[5]), especialidade ); registosMedicos.Add(medico); } } results.Close(); //---------------------------------------- //Carregar marcações queryString = "SELECT paciente.nome, data, hora, medico.nome" + " FROM marcacao" + " JOIN medico ON marcacao.id_medico = medico.id_utilizador" + " JOIN paciente ON marcacao.id_paciente = paciente.id"; query.CommandText = queryString; query.Connection = connect; results = query.ExecuteReader(); if (results.HasRows) { while (results.Read()) { Pacientes paciente = registosPacientes.Where(p => p.Nome.Equals(results[0].ToString())).First(); Medicos medico = registosMedicos.Where(m => m.Nome.Equals(results[3].ToString())).First(); Marcacao marcacao = new Marcacao( paciente, Convert.ToDateTime(results[1].ToString()), results[2].ToString(), medico, false ); registosMarcacoes.Add(marcacao); } } results.Close(); //---------------------------------------- connect.Close(); }
/// <summary> /// Botão de Adicionar Médico. Verifica se os campos estão vazios, e /// </summary> private void BotaoAdicionarMedico(object sender, EventArgs e) { if (tbNome.Text.Length > 0 && tbNSS.Text.Length > 0) { if (tbEspecialidade.Text.Length > 0) { int nissMedico; string nissForm = tbNSS.Text.Trim(); //Converte o NISS inserido para um inteiro. Se não conter caratéres ou caratéres especiais, devolve um boolean de tipo true. if (Int32.TryParse(nissForm, out nissMedico)) { //Se a hora de entrada inserida é antes da hora de saida inserida, devolve true. if (dtpHoraEntrada.Value.CompareTo(dtpHoraSaida.Value) < 0) { string usernameMedico = tbUsername.Text.Trim(); string passwordMedico = mtbPassword.Text; string nomeMedico = tbNome.Text.Trim(); string horaEntradaMedico = dtpHoraEntrada.Text; string horaSaidaMedico = dtpHoraSaida.Text; Especialidades especialidadeMedico = especialidadeSelecionada; //Mensagem de Confirmação DialogResult confirmacaoAdicionar = MessageBox.Show("Tem a certeza qe deseja inserir o médico '" + nomeMedico + "' ?", "Confirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (confirmacaoAdicionar == DialogResult.Yes) { //Se a especialidade selecionada é do tipo Especialidades. (Redundante, usado apenas para validar o valor de retorno do form de Selecionar Especialidade) if (especialidadeMedico is Especialidades) { Medicos medico = new Medicos(usernameMedico, passwordMedico, nomeMedico, horaEntradaMedico, horaSaidaMedico, nissMedico, especialidadeMedico); try { if (medico.VerificarDadosMedico()) { if (medico.Adicionar()) { MessageBox.Show("Médico inserido com sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information); formGestaoMedicos.RefreshTabelaMedicos(); formGestaoMedicos.Show(); Close(); } } else { MessageBox.Show("O médico inserido já existe.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception) { MessageBox.Show("Ocorreu um erro na inserção do médico.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } else { MessageBox.Show("O horário escolhido é inválido.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { MessageBox.Show("Não preencheu a especialidade do médico a inserir", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Preencha todos os dados para a inserção do médico", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public Marcacao(Pacientes paciente, DateTime dataConsulta, string horaConsulta, Medicos medico, bool novo) { if (novo) { Paciente = paciente; if (ValidaData(dataConsulta)) { Data = dataConsulta.ToShortDateString(); } else { throw new Exception("Data inválida"); } if (ValidaHora(horaConsulta)) { Hora = horaConsulta; } else { throw new Exception("Hora inválida"); } Medico = medico; } else { Paciente = paciente; Data = dataConsulta.ToShortDateString(); Hora = horaConsulta; Medico = medico; } }