public PontoFuncionarioViewModel(DiaTrabalho ponto, SessaoLogin sessao, IPontoDiaRepository pontoRepository, IUnitOfWork unitOfWork) { this.ponto = ponto; this.Data = ponto.Data.ToShortDateString(); this.Funcionario = ponto.Funcionario.Nome; this.Entrada = ponto.Inicio; this.Saida = ponto.Fim ?? new TimeSpan(0, 0, 0); this.pontoRepository = pontoRepository; this.unitOfWork = unitOfWork; if (sessao.UsuarioLogado is Funcionario) { this.AllowEdit = false; this.Titulo = "Ver ponto"; } else { this.AllowEdit = true; this.Titulo = "Editar/ver ponto"; } Intervalos = ponto.Intervalos.ToList(); SalvarCommand = new RelayCommand(confirmarSalvar, podeSalvar); FecharCommand = new RelayCommand(() => requestView(CLOSE)); }
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)); }
public void setUp() { funcionario = new FuncionarioFactory().criarFuncionario("Jhon Doe", "doe", "123456", "", "41617099864"); sessaoLogin = new SessaoLoginMock(funcionario); tipoIntervaloFactory = new TipoIntervaloFactory(new NomeIntervaloJaExisteSpecification(new TipoIntervaloMockRepository())); tipoAlmoco = tipoIntervaloFactory.criarTipoIntervalo("ALMOÇO"); }
public static SelecaoDataWindow criarSelecaoDataWindow() { var uow = UnitOfWorkFactory.criarUnitOfWork(); return(new SelecaoDataWindow(new SelecaoDataViewModel( RepositoryFactory.criarPontoRepository(uow), SessaoLogin.getSessao()))); }
public static PontoWindow criarPontoWindow(DiaTrabalho ponto, PontoService pontoService) { return(new PontoWindow(new ConsultarPontoViewModel( (Funcionario)SessaoLogin.getSessao().UsuarioLogado, ponto, pontoService, RepositoryFactory.criarTipoIntervaloRepository()))); }
public static ILoginService criarLoginService() { usuario.IUsuarioRepositorio repo = RepositoryFactory.criarUsuarioRepository(); return(new LoginService( repo, new UsuarioFactory(new LoginJaExisteSpecification(repo), new LoginValidoSpecification(), new SenhaValidaSpecification()), SessaoLogin.getSessao())); }
public void testLoginCorreto() { SessaoLogin.getSessao().encerrar(); Usuario u = loginService.Logar("joaozinho", "123456"); SessaoLogin.getSessao().encerrar(); Assert.AreEqual(u.Nome, "João"); }
private DiaTrabalho recuperarOuIniciarPonto(PontoService pontoService) { var ponto = pontoService.recuperarPontoAbertoFuncionario(SessaoLogin.getSessao().UsuarioLogado as Funcionario); if (ponto == null) { return(pontoService.iniciarDia()); } return(ponto); }
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; }
public PainelControleViewModel() { Titulo = string.Format("{0} - Painel de Controle", DateTime.Today.ToShortDateString()); UsuarioLogado = SessaoLogin.getSessao().UsuarioLogado.Nome; RelatorioCommand = new RelayCommand(() => requestView(VIEW_RELATORIO)); FolgaCommand = new RelayCommand(() => requestView(VIEW_FOLGA)); FeriadoCommand = new RelayCommand(() => requestView(VIEW_FERIADO)); JornadaCommand = new RelayCommand(() => requestView(VIEW_JORNADA)); PontoCommand = new RelayCommand(() => requestView(VIEW_PONTO)); }
public SelecaoDataViewModel(IPontoDiaRepository pontoRepository, SessaoLogin sessaoLogin) { this.pontoRepository = pontoRepository; this.sessaoLogin = sessaoLogin; var ontem = DateTime.Today.AddDays(-1); this.Data = ontem; this.MaxData = ontem; this.ConfirmarCommand = new RelayCommand(confirmarData); }
public void SetupTest() { usuarioRepositorio = new UsuarioMockRepositorio(); usuarioFactory = new UsuarioFactory(new LoginJaExisteSpecification(usuarioRepositorio), new LoginValidoSpecification(), new SenhaValidaSpecification()); LoginJaExisteSpecification loginJaExiste = new LoginJaExisteSpecification(usuarioRepositorio); usuarioFactory.LoginEmUsoSpecification = loginJaExiste; loginService = new LoginService(usuarioRepositorio, usuarioFactory, SessaoLogin.getSessao()); usuarioRepositorio.save(usuarioFactory.criarUsuario("João", "joaozinho", "123456")); usuarioRepositorio.save(usuarioFactory.criarUsuario("Maria", "maria", "123456")); }
public static PontoService criarPontoService(UnitOfWork unitOfWork = null) { var uow = unitOfWork ?? UnitOfWorkFactory.criarUnitOfWork(); var pontoRepository = RepositoryFactory.criarPontoRepository(uow); var tipoIntervaloRepository = RepositoryFactory.criarTipoIntervaloRepository(); return(new PontoService( criarPontoFactory(pontoRepository), new DataHoraLocalStrategy(), new FuncionarioPossuiPontoAbertoSpecification(pontoRepository), new FuncionarioJaTrabalhouHojeSpecification(pontoRepository), SessaoLogin.getSessao(), pontoRepository, tipoIntervaloRepository)); }
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)); }
private void Application_Startup(object sender, StartupEventArgs e) { Current.ShutdownMode = ShutdownMode.OnExplicitShutdown; tratarArgumentos(e.Args); bool loginAgain; do { loginAgain = false; var loginResult = UsuarioWindowFactory.criarLoginWindow().ShowDialog(); if (loginResult.HasValue && loginResult.Value) { loginAgain = true; try { if (SessaoLogin.getSessao().UsuarioLogado is Funcionario) { var pontoService = PontoServiceFactory.criarPontoService(); var ponto = recuperarOuIniciarPonto(pontoService); PontoWindowFactory.criarPontoWindow(ponto, pontoService).ShowDialog(); } else { PainelControleWindowFactory.criarPainelControleWindow().ShowDialog(); } } catch (PontoDiaJaExisteException ex) { MessageBox.Show(string.Format("O ponto do dia {0} já foi encerrado", ex.DataPonto.ToShortDateString()), "Não é possível iniciar", MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, "Não foi possível completar a operação", MessageBoxButton.OK, MessageBoxImage.Warning); } } SessaoLogin.getSessao().encerrar(); } while (loginAgain); Current.Shutdown(); }
public static PontoFuncionarioWindow criarPontoDoFuncionarioWindow(DiaTrabalho ponto, IUnitOfWork uow) { return(new PontoFuncionarioWindow(new PontoFuncionarioViewModel(ponto, SessaoLogin.getSessao(), RepositoryFactory.criarPontoRepository(uow), uow))); }
public void testLoginSessaoNaoEncerrada() { SessaoLogin.getSessao().encerrar(); loginService.Logar("joaozinho", "123456"); loginService.Logar("maria", "123456"); }
public PontoServiceMock(PontoFactory pontoFactory, IDataHoraStrategy dataHoraStrategy, FuncionarioPossuiPontoAbertoSpecification pontoAbertoSpec, FuncionarioJaTrabalhouHojeSpecification funcTrabSpec, SessaoLogin sessaoLogin, IPontoDiaRepository pontoRepository, ITipoIntervaloRepository tipoIntervaloRepository) : base(pontoFactory, dataHoraStrategy, pontoAbertoSpec, funcTrabSpec, sessaoLogin, pontoRepository, tipoIntervaloRepository) { }