protected override bool PreCondicional()
        {
            if (aClienteFixoDTO == null)
            {
                return(withoutError(newError("Houve um erro com as informações digitadas.")));
            }

            if (aClienteFixoRepository.getDia(aClienteFixoDTO.empresaid.Value, aClienteFixoDTO.tipofrequencia.Value, aClienteFixoDTO.horario.Value) != null)
            {
                return(withoutError(newError("Já existe um cliente fixo neste horário.")));
            }

            aParametrizacaoAgenda = aParametrizacaoAgendaRepository.getEmpresa(aClienteFixoDTO.empresaid.Value);

            if (aParametrizacaoAgenda == null || (aClienteFixoDTO.horario < aParametrizacaoAgenda.HORAINI || aClienteFixoDTO.horario > aParametrizacaoAgenda.HORAFIM))
            {
                return(withoutError(newError("Parametrizacao de agenda não encontrada ou horário fora do intervalo de trabalho.")));
            }

            return(withoutError());
        }
        protected override bool Semantic()
        {
            Agenda         lAgenda;
            ClienteFixoDTO cfixo;

            for (int i = aParametrizacaoAgenda.HORAINI; i < aParametrizacaoAgenda.HORAFIM; i++)
            {
                cfixo = aClienteFixoRepository.getDia(aEmpresa.empresaid, aData, i);

                lAgenda = new Agenda()
                {
                    empresaid = aEmpresa.empresaid,
                    dia       = aData,
                    horaini   = i,
                    horafim   = i + 1,
                    clienteid = cfixo == null ? null : cfixo.clienteid,
                    servicoid = cfixo == null ? null : (int?)cfixo.servicoid,
                };

                if (cfixo != null)
                {
                    cfixo.setUltimaConsulta(aData);
                }

                if (!aIncluirAgenda.incluir(lAgenda))
                {
                    addErro("Houve um erro ao criar as agendas");
                    acoAgendaDTO = new List <AgendaDTO>();
                    break;
                }
            }

            if (withoutError())
            {
                acoAgendaDTO = aAgendaRepository.getAgendaDTO(aData, aEmpresa.empresaid);
            }

            return(withoutError());
        }