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)); }
private FormularioViewModel InstantiateFVM(string dataEscolhida, int veterinarioEscolhido) { var consultas = _consultaRepository.GetConsultaByDateAndVet(dataEscolhida, veterinarioEscolhido); var veterinarioHorarios = _veterinarioHorarioRepository.VeterinarioHorariosById(veterinarioEscolhido); var user = GetUser().Result; var animais = user.Animais; var veterinario = GetVeterinario(veterinarioEscolhido).Result; var horariosFiltrados = GetHorariosFiltrados(consultas, veterinarioHorarios); var formularioViewModel = new FormularioViewModel() { HorariosFiltrados = horariosFiltrados, Animais = animais, Veterinario = veterinario, VeterinarioId = veterinario.VeterinarioId, DataConsulta = dataEscolhida }; return(formularioViewModel); }