Ejemplo n.º 1
0
        public static PontoService criarPontoService(SessaoLogin sessao, IDataHoraStrategy dataHoraStrategy = null, IPontoDiaRepository pontoRepository = null, bool mock = false, IFeriadoRepository feriadoRepository = null)
        {
            if (dataHoraStrategy == null)
            {
                dataHoraStrategy = new DataHoraMockStrategy(DateTime.Today);
            }

            if (pontoRepository == null)
            {
                pontoRepository = new PontoDiaMockRepository();
            }

            var tipoIntervaloRepository = new TipoIntervaloMockRepository();

            tipoIntervaloRepository.save(new TipoIntervalo("Almoço"));

            if (mock)
            {
                return(new PontoServiceMock(criarPontoFactory(pontoRepository, feriadoRepository),
                                            dataHoraStrategy,
                                            new FuncionarioPossuiPontoAbertoSpecification(pontoRepository),
                                            new FuncionarioJaTrabalhouHojeSpecification(pontoRepository),
                                            sessao,
                                            pontoRepository,
                                            tipoIntervaloRepository));
            }

            return(new PontoService(criarPontoFactory(pontoRepository, feriadoRepository),
                                    dataHoraStrategy,
                                    new FuncionarioPossuiPontoAbertoSpecification(pontoRepository),
                                    new FuncionarioJaTrabalhouHojeSpecification(pontoRepository),
                                    sessao,
                                    pontoRepository,
                                    tipoIntervaloRepository));
        }
Ejemplo n.º 2
0
 public PontoService(PontoFactory pontoFactory, IDataHoraStrategy dataHoraStrategy, FuncionarioPossuiPontoAbertoSpecification pontoAbertoSpec, FuncionarioJaTrabalhouHojeSpecification funcTrabSpec, SessaoLogin sessaoLogin, IPontoDiaRepository pontoRepository, ITipoIntervaloRepository tipoIntervaloRepository)
 {
     this.pontoFactory            = pontoFactory;
     this.dataHoraStrategy        = dataHoraStrategy;
     this.deixouPontoAberto       = pontoAbertoSpec;
     this.jaTrabalhouHoje         = funcTrabSpec;
     this.jaTrabalhouHoje.Data    = dataHoraStrategy.getDataHoraAtual();
     this.sessaoLogin             = sessaoLogin;
     this.pontoRepository         = pontoRepository;
     this.tipoIntervaloRepository = tipoIntervaloRepository;
 }
Ejemplo n.º 3
0
        private PontoService criarService(IDataHoraStrategy dataHoraStrategy = null, IPontoDiaRepository repository = null, Usuario logado = null)
        {
            var sessao = sessaoLogin;

            if (logado != null)
            {
                sessao = new SessaoLoginMock(logado);
            }

            return(FactoryHelper.criarPontoService(sessao, dataHoraStrategy, repository));
        }
Ejemplo n.º 4
0
        public DiaTrabalho criarDiaTrabalho(IDataHoraStrategy dataHoraStrategy, SessaoLogin sessaoLogin)
        {
            DateTime dt = dataHoraStrategy.getDataHoraAtual();

            if (repository.existePontoDia(sessaoLogin.UsuarioLogado as Funcionario, dt))
            {
                throw new PontoDiaJaExisteException(dt);
            }

            if (feriadoService.isFeriado(dt))
            {
                return(new DiaTrabalhoFeriado(feriadoService.getFeriado(dt), dt.TimeOfDay, sessaoLogin.UsuarioLogado as Funcionario));
            }

            return(new DiaTrabalhoComum(dt.Date, dt.TimeOfDay, sessaoLogin.UsuarioLogado as Funcionario));
        }
Ejemplo n.º 5
0
        public virtual void registrarIntervalo(TipoIntervalo tipoIntervalo, IDataHoraStrategy dataHoraStrategy)
        {
            if (intervaloFoiRegistrado(tipoIntervalo))
            {
                var intervalo = getIntervalo(tipoIntervalo);
                if (intervalo.Saida.HasValue)
                {
                    throw new IntervaloJaRegistradoException(tipoIntervalo);
                }

                intervalo.Saida = dataHoraStrategy.getDataHoraAtual().TimeOfDay;
            }
            else
            {
                if (algumIntervaloEmAberto())
                {
                    throw new IntervaloEmAbertoException(getIntervaloEmAberto());
                }

                Intervalos.Add(new Intervalo(tipoIntervalo, dataHoraStrategy.getDataHoraAtual().TimeOfDay));
            }
        }
Ejemplo n.º 6
0
 public static PontoService criarPontoService(Funcionario logado, IDataHoraStrategy dataHoraStrategy = null, IPontoDiaRepository pontoRepository = null, bool mock = false, IFeriadoRepository feriadoRepository = null)
 {
     return(criarPontoService(new SessaoLoginMock(logado), dataHoraStrategy, pontoRepository, mock, feriadoRepository));
 }
Ejemplo n.º 7
0
 private PontoService criarPontoService(IPontoDiaRepository pontoRepository, IFeriadoRepository feriadoRepository, IDataHoraStrategy dataHora)
 {
     return
         (FactoryHelper.criarPontoService(funcionario, dataHora, pontoRepository, false, feriadoRepository));
 }
Ejemplo n.º 8
0
        private DiaTrabalho iniciarEncerrarDia(IPontoDiaRepository pontoRepository, IFeriadoRepository feriadoRepository, DateTime entrada, IDataHoraStrategy dataHora)
        {
            var diaTrab = criarPontoTrabalhoDoDia(pontoRepository, feriadoRepository, entrada.Day, entrada.Month, entrada.Year, entrada.Hour);

            criarPontoService(pontoRepository, feriadoRepository, dataHora).encerrarDia(diaTrab);
            return(diaTrab);
        }
Ejemplo n.º 9
0
 public PontoServiceMock(PontoFactory pontoFactory, IDataHoraStrategy dataHoraStrategy, FuncionarioPossuiPontoAbertoSpecification pontoAbertoSpec, FuncionarioJaTrabalhouHojeSpecification funcTrabSpec, SessaoLogin sessaoLogin, IPontoDiaRepository pontoRepository, ITipoIntervaloRepository tipoIntervaloRepository) :
     base(pontoFactory, dataHoraStrategy, pontoAbertoSpec, funcTrabSpec, sessaoLogin, pontoRepository, tipoIntervaloRepository)
 {
 }