private bool ConsultaEstaNaJornadaDeTrabalho(Consulta consulta, JornadaDeTrabalho jornadaDeTrabalho) { var diasDeTrabalho = ObtenhaDiasDeTrabalho(jornadaDeTrabalho); if (!diasDeTrabalho.Contains(consulta.Data.DayOfWeek)) { return(false); } var inicioConsulta = consulta.Data.TimeOfDay; var fimConsulta = inicioConsulta.Add(consulta.Duracao); return(inicioConsulta >= jornadaDeTrabalho.HoraInicio.TimeOfDay && fimConsulta <= jornadaDeTrabalho.HoraInicioIntervalo.TimeOfDay || inicioConsulta >= jornadaDeTrabalho.HoraFimIntervalo.TimeOfDay && fimConsulta <= jornadaDeTrabalho.HoraFim.TimeOfDay); }
private List <DayOfWeek> ObtenhaDiasDeTrabalho(JornadaDeTrabalho jornadaDeTrabalho) { var diasDeTrabalho = new List <DayOfWeek>(); if (jornadaDeTrabalho.Domingo) { diasDeTrabalho.Add(DayOfWeek.Sunday); } if (jornadaDeTrabalho.Segunda) { diasDeTrabalho.Add(DayOfWeek.Monday); } if (jornadaDeTrabalho.Terca) { diasDeTrabalho.Add(DayOfWeek.Tuesday); } if (jornadaDeTrabalho.Quarta) { diasDeTrabalho.Add(DayOfWeek.Wednesday); } if (jornadaDeTrabalho.Quinta) { diasDeTrabalho.Add(DayOfWeek.Thursday); } if (jornadaDeTrabalho.Sexta) { diasDeTrabalho.Add(DayOfWeek.Friday); } if (jornadaDeTrabalho.Sabado) { diasDeTrabalho.Add(DayOfWeek.Saturday); } return(diasDeTrabalho); }