public void Executar(object obj)
        {
            var param = (object[])obj;
            var cod = 0;
            TimeSpan inicial = TimeSpan.Zero, final = TimeSpan.Zero;
            var codDia = ((ConsultarDiasSemanaDiaDTO)param[3]) == null ? 0 : ((ConsultarDiasSemanaDiaDTO)param[3]).CodigoDia;

            if ((!string.IsNullOrEmpty((string)param[1]) && !TimeSpan.TryParse((string)param[1], out inicial))
                || (!string.IsNullOrEmpty((string)param[2]) && !TimeSpan.TryParse((string)param[2], out final)))
            {
                System.Windows.Forms.MessageBox.Show("Insira valores válidos nos campos de hora.");
                return;
            }
            if (!string.IsNullOrEmpty((string)param[0]) && !int.TryParse((string)param[0], out cod))
            {
                System.Windows.Forms.MessageBox.Show("Insira um número no campo de código.");
                return;
            }

            var task = new Task(() =>
            {
                Status = "Consultando...";
                var model = new ConsultarHorarioParamModel();
                var request = new ConsultarHorarioParamRequest()
                {
                    Codigo = cod,
                    Inicial = inicial,
                    Final = final,
                    CodigoDia = codDia
                };
                model.Execute(request);

                if (model.Response.Status == ExecutionStatus.Success) this.Lista = model.Response.Horarios;
                else System.Windows.Forms.MessageBox.Show("Erro ao consultar professores:\n" + model.Response.ErrorMessage);
            });
            task.ContinueWith(x =>
            {
                Status = "";
            });

            task.Start();
        }
        public void ExecutarHorarios(object obj)
        {
            var param = (object[])obj;

            var curso = param[1] as DisplayCurso;
            if (curso == null)
            {
                MessageBox.Show("Selecione um curso");
                return;
            }

            var dia = param[0] as ConsultarDiasSemanaDiaDTO;
            if (dia == null)
            {
                MessageBox.Show("Selecione um dia");
                return;
            }

            new Task(() =>
            {
                Status = "Consultando horários...";

                var model = new ConsultarHorarioParamModel();
                model.Execute(new ConsultarHorarioParamRequest()
                {
                    CodigoDia = dia.CodigoDia,
                    CodigoPeriodo = curso.CodPeriodo
                });

                if (model.Response.Status == ExecutionStatus.Success)
                    ListaHorarios = (from c in model.Response.Horarios
                                    select new DisplayHorario()
                                    {
                                        DisplayName = string.Concat(c.HoraInicial, " - ", c.HoraFinal),
                                        CodHorario = c.Codigo
                                    }).ToList();
                else
                    MessageBox.Show(string.Concat("Erro ao consultar dados:\n", model.Response.ErrorMessage));

                Status = string.Empty;
            }).Start();
        }