public Models.Response.AgendadosResponseCompleto SepararPorTipo(List <Models.TbAgendamento> agendamentos)
        {
            DateTime agora  = DateTime.Now;
            DateTime amanha = DateTime.Now.AddDays(1);
            DateTime depois = DateTime.Now.AddDays(2);

            Models.Response.AgendadosResponseCompleto responseCompleto = new Models.Response.AgendadosResponseCompleto();
            responseCompleto.Hoje       = new List <Models.Response.AgendadosResponse>();
            responseCompleto.Amanha     = new List <Models.Response.AgendadosResponse>();
            responseCompleto.Depois     = new List <Models.Response.AgendadosResponse>();
            responseCompleto.Concluidos = new List <Models.Response.AgendadosResponse>();
            responseCompleto.Outros     = new List <Models.Response.AgendadosResponse>();

            List <Models.Response.AgendadosResponse> listaAgendados = new List <Models.Response.AgendadosResponse>();

            listaAgendados = this.ListaResponseAgendados(agendamentos);

            foreach (Models.Response.AgendadosResponse item in listaAgendados)
            {
                if (item.Data.Value.Date == agora.Date && item.Situacao == "Aprovado")
                {
                    responseCompleto.Hoje.Add(item);
                }
                else if (item.Data.Value.Date == amanha.Date && item.Situacao == "Aprovado")
                {
                    responseCompleto.Amanha.Add(item);
                }
                else if (item.Data.Value.Date >= depois.Date && item.Situacao == "Aprovado")
                {
                    responseCompleto.Depois.Add(item);
                }
                else if (item.Situacao == "Concluido")
                {
                    responseCompleto.Concluidos.Add(item);
                }
                else
                {
                    responseCompleto.Outros.Add(item);
                }
            }

            responseCompleto.Hoje       = responseCompleto.Hoje.OrderBy(x => x.Data).ToList();
            responseCompleto.Amanha     = responseCompleto.Amanha.OrderBy(x => x.Data).ToList();
            responseCompleto.Depois     = responseCompleto.Depois.OrderBy(x => x.Data).ToList();
            responseCompleto.Concluidos = responseCompleto.Concluidos.OrderByDescending(x => x.Data).ToList();
            responseCompleto.Outros     = responseCompleto.Outros.OrderByDescending(x => x.Data).ToList();

            return(responseCompleto);
        }
        public ActionResult <Models.Response.AgendadosResponseCompleto> PegarTodosAgendamentos()
        {
            try
            {
                List <Models.TbAgendamento> agendamentos = business.PegarTodosAgendamentos();

                if (agendamentos.Count == 0)
                {
                    return(NotFound("Nenhum agendamento encontrado"));
                }

                Models.Response.AgendadosResponseCompleto response = conversor.SepararPorTipo(agendamentos);

                return(response);
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(400, ex.Message)));
            }
        }
        public ActionResult <Models.Response.AgendadosResponseCompleto> ListarAgendados(int idCliente)
        {
            try
            {
                List <Models.TbAgendamento> agendamentos = business.ListarAgendadosCliente(idCliente);
                if (agendamentos.Count == 0 || agendamentos == null)
                {
                    return(NotFound("Nenhum agendamento encontrado"));
                }


                Models.Response.AgendadosResponseCompleto listaAgendados = conversor.SepararPorTipo(agendamentos);

                return(listaAgendados);
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      400, ex.Message
                                      )));
            }
        }