Exemple #1
0
        public IActionResult SelecionarHorario(AdminConsultaVM adminConsultaVM)
        {
            var      veterinario    = _veterinarioRepository.GetVetById(adminConsultaVM.Veterinario.VeterinarioId).Result;
            var      animal         = _animalRepository.GetAnimalById(adminConsultaVM.Animal.AnimalId).Result;
            DateTime dataConvertida = new DateTime();

            if (!AnimalChecado(animal))
            {
                return(RedirectToAction("Adicionar"));
            }
            else if (!VeterinarioChecado(veterinario))
            {
                return(RedirectToAction("SelecionarVeterinario", new { animalId = adminConsultaVM.Animal.AnimalId }));
            }
            else
            {
                try
                {
                    dataConvertida = Convert.ToDateTime(adminConsultaVM.DataEscolhida);
                    if (dataConvertida.DayOfWeek == DayOfWeek.Sunday || dataConvertida > DateTime.Today.AddDays(14) || dataConvertida < DateTime.Today)
                    {
                        TempData["error"] = "Ocorreu um erro na data escolhida, caso persistir o erro entre em contato conosco.";
                        return(RedirectToAction("SelecionarData", new { animalId = adminConsultaVM.Animal.AnimalId, vetId = adminConsultaVM.Veterinario.VeterinarioId }));
                    }
                }
                catch (Exception)
                {
                    TempData["error"] = "Ocorreu um erro na data escolhida, caso persistir o erro entre em contato conosco.";
                    return(RedirectToAction("SelecionarData", new { animalId = adminConsultaVM.Animal.AnimalId, vetId = adminConsultaVM.Veterinario.VeterinarioId }));
                }
            }

            return(BadRequest());
        }
Exemple #2
0
        public IActionResult SelecionarData(int animalId, int vetId)
        {
            var veterinario = _veterinarioRepository.GetVetById(vetId).Result;
            var animal      = _animalRepository.GetAnimalById(animalId).Result;

            if (!AnimalChecado(animal))
            {
                return(RedirectToAction("Adicionar"));
            }
            else if (!VeterinarioChecado(veterinario))
            {
                return(RedirectToAction("SelecionarVeterinario", new { animalId = animalId }));
            }

            var           horariosPorVeterinario = _veterinarioHorarioRepository.VeterinarioHorariosById(vetId);
            List <string> diasDisponiveis        = new List <string>();

            /*
             * Funcionamento desse 'for'
             * O valor definido para esse 'for' é o dia atual, ele seguirá o loop até ter 14 dias depois do dia atual,
             * cada loop tera acréscimo de 1 dia.
             *
             * No primeiro 'if' ele verifica se o dia em questão não é um domingo
             *
             * No 'foreach' ele irá percorrer todos os horários do veterinário, para cada horário ele ira fazer uma requisição
             * no banco de dados, caso retorne nenhum valor, ele marca aquele dia como válido e quebra o foreach, caso retorne '1',
             * ele irá ir para o próximo loop do 'foreach'.
             */
            for (DateTime i = DateTime.Today; i < DateTime.Today.AddDays(14); i = i.AddDays(1))
            {
                if (i.DayOfWeek != DayOfWeek.Sunday)
                {
                    foreach (VeterinarioHorario horario in horariosPorVeterinario)
                    {
                        if (_consultaRepository.GetConsultaByDateAndVetAndTime(i.ToShortDateString(), vetId, horario.Horario.Hora).LongCount() == 0)
                        {
                            diasDisponiveis.Add(i.ToShortDateString());
                            break;
                        }
                    }
                }
            }

            if (diasDisponiveis.Count() == 0)
            {
                TempData["error"] = "Não foi encontrado nenhuma data disponível nos próximos 14 dias.";
                return(RedirectToAction("SelecionarVeterinario", new { animalId = animalId }));
            }

            var adminConsultaVM = new AdminConsultaVM
            {
                Veterinario     = veterinario,
                Animal          = animal,
                DiasDisponiveis = diasDisponiveis
            };

            return(View(adminConsultaVM));
        }
Exemple #3
0
        public IActionResult SelecionarVeterinario(int AnimalId)
        {
            var veterinarios = _veterinarioRepository.Veterinarios;
            var animal       = _animalRepository.GetAnimalById(AnimalId).Result;

            if (!AnimalChecado(animal))
            {
                return(RedirectToAction("Adicionar"));
            }

            var adminConsultaVM = new AdminConsultaVM
            {
                Veterinarios = veterinarios,
                Animal       = animal
            };

            return(View(adminConsultaVM));
        }
Exemple #4
0
        public IActionResult SelecionarHorario(int animalId, int vetId, string data)
        {
            var      veterinario    = _veterinarioRepository.GetVetById(vetId).Result;
            var      animal         = _animalRepository.GetAnimalById(animalId).Result;
            DateTime dataConvertida = new DateTime();

            if (!AnimalChecado(animal))
            {
                return(RedirectToAction("Adicionar"));
            }
            else if (!VeterinarioChecado(veterinario))
            {
                return(RedirectToAction("SelecionarVeterinario", new { animalId = animalId }));
            }
            else
            {
                try
                {
                    dataConvertida = Convert.ToDateTime(data);
                    if (dataConvertida.DayOfWeek == DayOfWeek.Sunday || dataConvertida > DateTime.Today.AddDays(14) || dataConvertida < DateTime.Today)
                    {
                        TempData["error"] = "Ocorreu um erro na data escolhida, caso persistir o erro entre em contato conosco.";
                        return(RedirectToAction("SelecionarData", new { animalId = animalId, vetId = vetId }));
                    }
                }
                catch (Exception)
                {
                    TempData["error"] = "Ocorreu um erro na data escolhida, caso persistir o erro entre em contato conosco.";
                    return(RedirectToAction("SelecionarData", new { animalId = animalId, vetId = vetId }));
                }
            }

            var horariosPorVeterinario = _veterinarioHorarioRepository.VeterinarioHorariosById(vetId);
            List <VeterinarioHorario> horariosDisponiveis = new List <VeterinarioHorario>();

            foreach (VeterinarioHorario horario in horariosPorVeterinario)
            {
                if (_consultaRepository.GetConsultaByDateAndVetAndTime(dataConvertida.ToShortDateString(), vetId, horario.Horario.Hora).LongCount() == 0)
                {
                    horariosDisponiveis.Add(horario);
                }
            }

            if (horariosDisponiveis.Count() == 0)
            {
                TempData["error"] = "Não foram encontrados horários disponíveis para essa data, " +
                                    "provavelmente alguém marcou a última consulta do dia primeiro que você :(, " +
                                    "caso ache que isto pode ser um erro, entre em contato conosco";
                return(RedirectToAction("SelecionarVeterinario", new { animalId = animalId, vetId = vetId }));
            }

            var adminConsultaVM = new AdminConsultaVM
            {
                Veterinario         = veterinario,
                Animal              = animal,
                DataEscolhida       = Convert.ToDateTime(dataConvertida).ToShortDateString(),
                HorariosDisponiveis = horariosDisponiveis
            };

            return(View(adminConsultaVM));
        }