Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }