private void PopulaProfessores() { ProfessoresBO controladorProfessores = new ProfessoresBO(); ddlProfessores.DataSource = controladorProfessores.GetProfessores(); ddlProfessores.DataTextField = "Nome"; ddlProfessores.DataValueField = "Id"; ddlProfessores.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["GUID"] != null) { try { CursosBO cursoBO = new CursosBO(); DisciplinasBO discBO = new DisciplinasBO(); ProfessoresBO profBO = new ProfessoresBO(); TurmaBO boTurma = new TurmaBO(); Calendario cal = (Calendario)Session["Calendario"]; try { Turma turma = boTurma.GetTurmaById(new Guid(Request.QueryString["GUID"]), cal); ddlDisciplina.DataSource = discBO.GetDisciplinas(cal); ddlDisciplina.DataTextField = "Nome"; ddlDisciplina.DataValueField = "Cod"; ddlDisciplina.SelectedValue = turma.Disciplina.Cod; ddlDisciplina.DataBind(); txtNumero.Text = Convert.ToString(turma.Numero); txtDataHora.Text = turma.DataHora; ddlProfessor.DataSource = profBO.GetProfessores(); ddlProfessor.DataTextField = "Nome"; ddlProfessor.DataValueField = "Id"; ddlProfessor.SelectedValue = (turma.Professor.Id).ToString(); ddlProfessor.DataBind(); ddlCurso.DataSource = cursoBO.GetCursos(); ddlCurso.DataTextField = "Nome"; ddlCurso.DataValueField = "Codigo"; ddlCurso.SelectedValue = turma.Curso.Codigo; ddlCurso.DataBind(); } catch (FormatException) { Response.Redirect("~/Turmas/ListaTurmas.aspx"); } } catch (BusinessData.DataAccess.DataAccessException) { Response.Redirect("~/Turmas/ListaTurmas.aspx"); } } else { Response.Redirect("~/Turmas/ListaTurmas.aspx"); } } }
protected void Page_Load(object sender, EventArgs e) { listaTurmas = Session["listaTurmas"] as IList <Turma>; listaTurmasNone = Session["listaTurmasNone"] as IList <TurmaSemProfessor>; if (!Page.IsPostBack) { ProfessoresBO controleProfessores = new ProfessoresBO(); listaProfessores = controleProfessores.GetProfessores(); Session.Add("listaProfessores", listaProfessores); } listaProfessores = Session["listaProfessores"] as IList <Professor>; }
public void ImportarProfessores() { // Import profs from Excel data var data = from c in excel.Worksheet("profs") select c; foreach (var s in data) { profs.Add(Professor.NewProfessor(s[0], s[1], s[2])); } bool existe = false; try { ProfessoresBO controleProfessores = new ProfessoresBO(); IList <Professor> professoresCadastrados = (List <Professor>)controleProfessores.GetProfessores(); IList <Professor> professoresImportados = profs; foreach (Professor profAtual in professoresImportados) { foreach (Professor profCadastrado in professoresCadastrados) { if (profCadastrado.Equals(profAtual)) { output.InnerHtml += "<font color=\"red\">" + profAtual.Nome + " já existe!</font><br>"; //ListBox1.Items.Add(profAtual.Nome + " já existe"); existe = true; break; } } if (!existe) { output.InnerHtml += "Adicionando " + profAtual.Nome + " (" + profAtual.Matricula + ") - " + profAtual.Email + "<br>"; //ListBox1.Items.Add(profAtual.ToString()); controleProfessores.InsertPessoa(profAtual, "pergunta", profAtual.Matricula); } else { existe = false; } } } catch (Exception) { throw; } }
public void populaProfessores() { try { //ddlProfessor.DataSource = profBO.GetProfessores(); //ddlProfessor.DataTextField = "Nome"; //ddlProfessor.DataValueField = "Id"; //ddlProfessor.DataBind(); cbProfessor.DataSource = profBO.GetProfessores(); cbProfessor.DataTextField = "Nome"; cbProfessor.DataValueField = "Id"; cbProfessor.DataBind(); } catch (BusinessData.DataAccess.DataAccessException) { } }
protected void grvListaProfessores_RowDeleting(object sender, GridViewDeleteEventArgs e) { try { ProfessoresBO boProfessor = new ProfessoresBO(); Professor p = (Professor)boProfessor.GetPessoaById((Guid)grvListaProfessores.DataKeys[e.RowIndex].Value); boProfessor.DeletePessoa(p); lblStatus.Text = "Professor excluído com sucesso"; lblStatus.Visible = true; grvListaProfessores.DataSource = boProfessor.GetProfessores(); grvListaProfessores.DataBind(); } catch (BusinessData.DataAccess.DataAccessException ex) { Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message); } catch (SecurityException ex) { Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message); } }
protected void Page_Load(object sender, EventArgs e) { List <Professor> listaProf = null; try { ProfessoresBO boProfessor = new ProfessoresBO(); listaProf = boProfessor.GetProfessores(); if (listaProf.Count == 0) { lblStatus.Text = "Nenhum professor cadastrado"; lblStatus.Visible = true; lblOnline.Visible = false; } else { grvListaProfessores.DataSource = listaProf; grvListaProfessores.DataBind(); } } catch (BusinessData.DataAccess.DataAccessException ex) { Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message); } string online = "Usuários online: "; foreach (Professor p in listaProf) { if (Membership.GetUser(p.Matricula).IsOnline) { online += p.Nome + " (" + p.Matricula + ") "; } } lblOnline.Text = online; }
private void ImportarTurmas(Calendario calId) { ProfessoresBO profsBO = new ProfessoresBO(); List <Professor> profs = profsBO.GetProfessores(); DisciplinasBO discipBO = new DisciplinasBO(); List <Disciplina> discs = discipBO.GetDisciplinaInCalendario(calId.Id); TurmaBO turmasBO = new TurmaBO(); List <Turma> turmasCadastradas = turmasBO.GetTurmas(calId); List <Turma> turmasNovas = new List <Turma>(); CursosBO cursosBO = new CursosBO(); Curso curso = cursosBO.GetCursoByCodigo(codcurso); if (curso == null) { output.InnerHtml += "<font color=\"red\">Erro: curso " + codcurso + " inexistente!</font>"; return; } output.InnerHtml += "<h2>" + curso.Nome + " (" + curso.Vinculo + ")</h2>"; // Import turmas from Excel data var data = from c in excel.Worksheet("turmas") select c; // cod, nro, horario, prof // Processa cada turma foreach (var s in data) { string cod = s[0]; if (cod.Contains("-")) { cod = cod.Substring(0, cod.IndexOf('-')); } int nro = Int32.Parse(s[1]); string horario = s[2]; string matr = s[3]; Disciplina disc = (from d in discs where d.Cod == cod select d).FirstOrDefault(); if (disc == null) { output.InnerHtml += "<font color=\"red\">Erro: disciplina " + cod + " inexistente!</font>"; continue; } output.InnerHtml += "Turma: " + disc.CodCred + " - " + disc.Nome + " (" + nro + ") - " + horario + " - " + matr + "<br>"; Professor prof = (from p in profs where p.Matricula == matr select p).FirstOrDefault(); if (prof == null) { output.InnerHtml += "<font color=\"red\">Professor " + matr + " não cadastrado!</font><br><br>"; } Turma atual = (from t in turmasCadastradas where t.Disciplina.Cod == cod && t.Numero == nro select t).FirstOrDefault(); if (atual == null) { Turma nova = Turma.NewTurma(nro, calId, disc, horario, prof, curso); turmasBO.InsereTurma(nova); } else { output.InnerHtml += "<font color=\"red\"> Turma já cadastrada!</font><br><br>"; } } }
private string ToTitleCase(string words) { TextInfo textInfo = new CultureInfo("pt-BR", false).TextInfo; words = textInfo.ToTitleCase(words.ToLower()); words = Regex.Replace(words, @" (D)([eao]|[ao]s) ", @" d$2 "); words = words.Replace(" Iv", " IV"); words = words.Replace(" Iii", " III"); words = words.Replace(" Ii", " II"); words = Regex.Replace(words, " Si$", " SI"); words = Regex.Replace(words, " Es$", " ES"); words = words.Replace(" Cc", " CC"); words = words.Replace("- Ec", "- EC"); //words = Regex.Replace(words, "Em$", "EM"); words = words.Replace(" Em ", " em "); words = words.Replace(" Ti", " TI"); words = words.Replace(" Na ", " na "); words = words.Replace(" No ", " no "); words = words.Replace(" E ", " e "); words = words.Replace(" A ", " a "); words = words.Replace(" Para ", " para "); /**/ return(words); } private Professor FindProf(string matr) { return((from prof in profsCadastrados where prof.Matricula == matr select prof).FirstOrDefault()); } private Professor FindProfEmail(string email) { return((from prof in profsCadastrados where prof.Email == email select prof).FirstOrDefault()); } private Professor FindProfNome(string nome) { return((from prof in profsCadastrados where prof.Nome == nome select prof).FirstOrDefault()); } private Disciplina FindDisc(string codigo) { return((from d in disciplinasCadastradas where d.Cod == codigo select d).FirstOrDefault()); } private string FixTime(string horario, int cred) { string dias = Regex.Replace(horario, "[A-Z]", ""); string horas = Regex.Replace(horario, "[0-9]", ""); int i = 0; if (horas == "ABC") { horas = "ABCD"; } else if (horas == "BCD") { horas = "ABCD"; } else if (horas == "CDE") { horas = "CDEX"; } else if (horas == "FGH") { horas = "FGHI"; } else if (horas == "GHI") { horas = "FGHI"; } else if (horas == "HIJ") { horas = "HIJK"; } else if (horas == "IJK") { horas = "HIJK"; } else if (horas == "JKL") { horas = "JKLM"; } else if (horas == "LMN") { horas = "LMNP"; } else if (horas == "MNP") { horas = "LMNP"; } else if (horas == "IJ") { horas = "HI"; } string hora_s = ""; var lista = horas.GroupBy(_ => i++ / 2).Select(g => String.Join("", g)).ToList(); int pos = 0; foreach (var hora in lista) { hora_s += dias[pos] + hora; if (pos < dias.Length - 1) { pos++; } } horario = dias + " - " + hora_s; return(hora_s); } protected void butImportAcad_Click(object sender, EventArgs e) { // 46501;4;4650104;ALGORITMOS AVANCADOS;127;2LM 4LM;NÃO INFORMADO;MICHAEL DA COSTA MORA;[email protected];049214;-;-;-;-;-;-;-;-; // 0: código // 1: créditos // 3: nome disciplina // 4: teórica/prática // 5: turma // 6: horário (2LM 4LM) // 7: curso // 9: nome professor // 10: email professor // 11: matrícula professor // 12: prédio/bloco/sala 1 // 13: horário 1 // 14: prédio/bloco/sala 2 // 15: horário 2 // ... até 4 const int CODIGO = 0; const int CREDITOS = 1; const int NOMEDISC = 3; const int TURMA = 5; const int HORARIO = 6; const int CURSO = 7; const int NOMEPROF = 9; const int EMAIL = 10; const int MATRICULA = 11; const int SALA1 = 12; const int SALA2 = 14; const int SALA3 = 16; WebClient wc = new WebClient(); String url = "http://www.politecnica.pucrs.br/academico/sarc/csv.php?GRP=&PREDIO=32"; string data = wc.DownloadString(url); string[] linhas = data.Split('\n'); /**/ profsCadastrados = (List <Professor>)controleProfs.GetProfessores(); var cat32 = (from c in catDisBo.GetCategoriaDisciplinas() where c.Descricao == "Prática" select c).First(); var cat30 = (from c in catDisBo.GetCategoriaDisciplinas() where c.Descricao == "Teórica - Outras Unidades" select c).First(); if (cat32 == null || cat30 == null) { Response.Write("ERROR! Null category! " + cat32 + " " + cat30); } Calendario cal = (Calendario)(Session["Calendario"]); disciplinasCadastradas = controleDiscs.GetDisciplinas(); List <Disciplina> disciplinasInCalendario = controleDiscs.GetDisciplinaInCalendario(cal.Id); List <Turma> turmasCadastradas = turmasBO.GetTurmas(cal); Dictionary <string, Turma> turmasNovas = new Dictionary <string, Turma>(); // Popula o dicionário com todas as turmas já existentes no calendário foreach (Turma turma in turmasCadastradas) { turmasNovas.Add(turma.ToString(), turma); } // Todas as turmas são vinculadas ao curso "Escola Politécnica Importação", pois não há // essa informação no CSV Curso curso = null; int totalDiscNovas = 0; int totalDiscNovasCal = 0; int totalProfsNovos = 0; int totalTurmasNovas = 0; string novos = ""; string semprof = ""; string novasdisc = ""; string novasturmas = ""; string novos_emails = ""; output.InnerHtml += "<table><tr><th>Codcred</th><th>Disciplina</th><th>Turma</th><th>Horário</th><th>Sala</th><th>Professor</th></tr>"; bool first = true; bool simula = checkSimul.Checked; foreach (var linha in linhas) { if (first) { first = false; continue; } //output.InnerHtml += "<pre>" + linha + "</pre><br>"; var dados = linha.Split(';'); int turma, cred; string cod = dados[CODIGO]; int.TryParse(dados[CREDITOS], out cred); if (cred == 1) { continue; // skip 1-credit modules } string nomedisc = ToTitleCase(dados[NOMEDISC]); int.TryParse(dados[TURMA], out turma); string hora = dados[HORARIO].Replace('Y', 'X').Replace(" ", ""); hora = FixTime(hora, cred); string nomeprof = ToTitleCase(dados[NOMEPROF]).Trim(); if (nomeprof.Trim() == String.Empty) { continue; } string email = dados[EMAIL].Trim(); string matricula = dados[MATRICULA].Trim(); if (matricula.StartsWith("0")) // matrícula antiga? { matricula = "10" + matricula; } string sala = dados[SALA1].Trim(); if (dados[SALA2].Trim() != "-") { sala += ", " + dados[SALA2].Trim(); } if (dados[SALA3].Trim() != "-") { sala += ", " + dados[SALA3].Trim(); } try { curso = cursosBO.GetCursoByCodigo(dados[CURSO]); if (curso == null) { curso = cursosBO.GetCursoByCodigo("EP"); // Response.Write("ERROR! Null course!"); } } catch (InvalidOperationException) { curso = cursosBO.GetCursoByCodigo("EP"); } Professor novoProf = null; string x = nomeprof; if (!profs.ContainsKey(x)) { //novoProf = FindProfEmail(email); //novoProf = FindProf(x); novoProf = FindProfNome(x); if (novoProf == null && matricula != String.Empty) { novoProf = Professor.NewProfessor(matricula, nomeprof, email); novos += "<span style=\"color: red\">Novo: " + novoProf.Nome + " (" + novoProf.Email + ")</span><br>"; novos_emails += novoProf.Email + ", "; if (!simula) { controleProfs.InsertPessoa(novoProf, "pergunta", novoProf.Matricula); } totalProfsNovos++; } if (matricula != String.Empty) { profs.Add(x, novoProf); } else { semprof += String.Format("<br>Sem professor associado: {0}-{1:D2} {2} ({3})", cod, cred, nomedisc, turma); } } else { novoProf = profs[x]; } Disciplina disc = FindDisc(cod); if (disc != null) { // Disciplina já existe... nomedisc = disc.Nome; // Mas não existe no calendário? if (!disciplinasInCalendario.Contains(disc)) { // Insere apenas na tabela disciplinasincalendario if (!simula) { controleDiscs.InsereDisciplinaInCalendario(disc, cal.Id); } totalDiscNovasCal++; } } else { // Categoria pode ser "Prática", se for da Informática // ou "Teórica - Outras Unidades" se não for... CategoriaDisciplina cat2; if (cod.StartsWith("46")) { cat2 = cat32; } else { cat2 = cat30; } disc = Disciplina.GetDisciplina(cod, cred, nomedisc, true, cal, cat2); // Disciplina não existe ou é nova? if (!discs.ContainsKey(cod)) { // Disciplina nova, insere na tabela de disciplinas e // disciplinasincalendario if (!simula) { controleDiscs.InsereDisciplina(disc); } novasdisc += String.Format("<br>Nova disciplina: {0}-{1:D2} {2}", cod, cred, nomedisc); totalDiscNovas++; } } if (!discs.ContainsKey(cod)) { discs.Add(cod, disc); } // Adiciona turma (se ainda não existir no calendário) string style = ""; if (novoProf != null) { Turma novaTurma = Turma.NewTurma(turma, cal, disc, hora, novoProf, curso, sala); if (!turmasNovas.ContainsKey(novaTurma.ToString())) { if (!simula) { turmasBO.InsereTurma(novaTurma, cal); } novasturmas += String.Format("<br>Nova turma: {0}-{1:D2} {2} ({4}) {5} - {3}", disc.Cod, disc.Cred, disc.Nome, novoProf.Nome, turma, hora); totalTurmasNovas++; } } else { style = "style=\"background-color: #ffb3b3\""; } output.InnerHtml += String.Format("<tr {0}><td>{1}-{2:D2}</td><td>{3}</td><td>{4}</td><td>{5}</td><td>{6}</td><td>{7}</td></tr>", style, cod, cred, nomedisc, turma, hora, sala, nomeprof); //output.InnerHtml += nomedisc+" "+nomeprof+"<br>"; } output.InnerHtml += "</table>"; output.InnerHtml += "<br>" + novos; output.InnerHtml += "<br>" + novasdisc; output.InnerHtml += "<br>" + novasturmas; output.InnerHtml += "<br><br>Total disciplinas novas: " + totalDiscNovas; output.InnerHtml += "<br>Novas neste calendário: " + totalDiscNovasCal; output.InnerHtml += "<br>Total profs. novos: " + totalProfsNovos; output.InnerHtml += "<br>Total turmas novas: " + totalTurmasNovas; output.InnerHtml += "<br>" + semprof; output.InnerHtml += "<br><br>Lista de emails novos: " + novos_emails; }