private void VisualizarAlocacoesData() { try { if (txtData.Text.Length != 0) { List <Alocacao> listaAlocacoes = controladorAlocacoes.GetAlocacoesByData(DateTime.Parse(txtData.Text), (BusinessData.Entities.Calendario)Session["Calendario"]); if (listaAlocacoes.Count != 0) { dgAlocacoes.DataSource = listaAlocacoes; dgAlocacoes.Visible = true; dgAlocacoes.DataBind(); lblStatus.Visible = false; } else { lblStatus.Text = "Não existem recursos alocados na data informada."; lblStatus.Visible = true; dgAlocacoes.Visible = false; } } else { lblStatus.Visible = true; FormatException excp = new FormatException(); throw excp; } } catch (FormatException) { dgAlocacoes.Visible = false; lblStatus.Text = "Digite uma data válida!"; dgAlocacoes.Visible = false; } }
private void VisualizarAlocacoesData() { try { if (txtData.Text.Length != 0) { DateTime now = DateTime.Parse(txtData.Text); List <Alocacao> listaAlocacoes = controladorAlocacoes.GetAlocacoesByData(now, (BusinessData.Entities.Calendario)Session["Calendario"]); List <Alocacao> filtradaAtual = new List <Alocacao>(); List <Alocacao> filtradaProx = new List <Alocacao>(); //string horarioAtual = String.Empty; List <string> horarios = new List <string>(); List <TimeSpan> horariosTime = new List <TimeSpan>(); foreach (string hor in Enum.GetNames(typeof(Horarios.HorariosPUCRS))) { horariosTime.Add(Horarios.ParseToDateTime(hor).TimeOfDay); horarios.Add(hor.ToString()); } TimeSpan nowTime = DateTime.Now.TimeOfDay; //nowTime = nowTime.Add(new TimeSpan(2,0,0)); // para testar com outros horarios // Identifica o período de aula atual int pos; if (nowTime < horariosTime[0]) { pos = 0; } else { for (pos = 0; pos < horarios.Count - 1; pos++) { if (nowTime >= horariosTime[pos] && nowTime <= horariosTime[pos + 1]) { break; } } } lblAtual.Text = "Horário atual: " + horarios[pos];//+" - "+nowTime.ToString(); string horarioAtual = horarios[pos]; string horarioProx = String.Empty; if (pos < horarios.Count - 1) // se nao estivermos ja no ultimo horario... { horarioProx = horarios[pos + 1]; lblProximo.Text = "Proximo horario: " + horarioProx; } bool achei = false; foreach (Alocacao aloc in listaAlocacoes) { if (aloc.Horario != horarioAtual && aloc.Horario != horarioProx && achei) // ja achou, ou seja, mudou o horario { break; } if (aloc.Horario == horarioAtual) { //Alocacao nova = new Alocacao(aloc.Recurso,aloc.Data,aloc.Horario,aloc.Aula,aloc.Evento); //nova.Delta = dif.TotalMinutes.ToString(); filtradaAtual.Add(aloc); achei = true; // indica que ja achou - quando o horario mudar, sai do foreach } if (aloc.Horario == horarioProx) { //Alocacao nova = new Alocacao(aloc.Recurso,aloc.Data,aloc.Horario,aloc.Aula,aloc.Evento); filtradaProx.Add(aloc); achei = true; } } if (filtradaAtual.Count != 0) { dgAlocacoes.DataSource = filtradaAtual; dgAlocacoes.Visible = true; dgAlocacoes.DataBind(); lblStatus.Visible = false; } if (filtradaProx.Count != 0) { dgAlocacoes2.DataSource = filtradaProx; dgAlocacoes2.DataBind(); dgAlocacoes2.Visible = true; lblStatus.Visible = false; } if (filtradaAtual.Count == 0 && filtradaProx.Count == 0) { lblStatus.Text = "Não existem recursos alocados para hoje."; lblStatus.Visible = true; dgAlocacoes.Visible = false; } } else { lblStatus.Visible = true; FormatException excp = new FormatException(); throw excp; } } catch (FormatException) { dgAlocacoes.Visible = false; lblStatus.Text = "Digite uma data válida!"; dgAlocacoes.Visible = false; } }
private void VisualizarAlocacoesData() { DateTime tmp = DateTime.Parse(lblDataHora.Text); DateTime now = tmp.Date; TimeSpan nowTime = tmp.TimeOfDay; AlocacaoBO controladorAlocacoes = new AlocacaoBO(); List <Alocacao> listaAlocacoes = controladorAlocacoes.GetAlocacoesByData(now, (BusinessData.Entities.Calendario)Session["Calendario"]); //TimeSpan nowTime = DateTime.Now.TimeOfDay; //nowTime = nowTime.Add(new TimeSpan(2,0,0)); // para testar com outros horarios //nowTime = nowTime.Subtract(new TimeSpan(0,12,0)); // Identifica o período de aula atual int pos; if (nowTime < horariosTime[0]) { pos = 0; } else { for (pos = 0; pos < horarios.Count - 1; pos++) { if (nowTime >= horariosTime[pos] && nowTime < horariosTime[pos + 1]) { break; } } } List <Alocacao> filtradaAtual = ProcuraProximoHorario(listaAlocacoes, ref pos); foreach (Alocacao aloc in filtradaAtual) { System.Diagnostics.Debug.WriteLine(">>> " + aloc.Recurso.ToString()); } if (filtradaAtual != null && filtradaAtual.Count != 0) { //Response.Write("pos="+pos+"<br/>"); lblAtual.Text = horarios[pos - 1]; dgAlocacoes.DataSource = filtradaAtual; dgAlocacoes.Visible = true; dgAlocacoes.DataBind(); lblStatus.Visible = false; } List <Alocacao> filtradaProx = ProcuraProximoHorario(listaAlocacoes, ref pos); if (filtradaProx != null && filtradaProx.Count != 0) { //Response.Write("pos="+pos+"<br/>"); lblProximo.Text = horarios[pos - 1]; dgAlocacoes2.DataSource = filtradaProx; dgAlocacoes2.DataBind(); dgAlocacoes2.Visible = true; lblStatus.Visible = false; } //if (pos < horarios.Count - 1) // se nao estivermos ja no ultimo horario... // { // lblAtual.Text = "Horário atual: " + horarioAtual;//+" - "+nowTime.ToString(); // lblProximo.Text = "Proximo horario: " + horarioProx; if (filtradaAtual.Count == 0 && filtradaProx.Count == 0) { lblStatus.Text = "Não existem recursos alocados para hoje."; lblStatus.Visible = true; dgAlocacoes.Visible = false; } }