예제 #1
0
        /// <summary>
        /// traz os dados de atividades brutas e consolidadas de apenas um usuário, com suas referencias
        /// de forma assíncrona
        /// </summary>
        /// <param name="usuarioId"></param>
        /// <param name="inicio"></param>
        /// <param name="fim"></param>
        /// <returns></returns>
        public virtual async Task <AtividadeIndexViewModel> GetAtividadeIndexAsync(int usuarioId, DateTime?inicio, DateTime?fim)
        {
            AtividadeIndexViewModel result = await GetAtividadeIndexAsync(new List <int> {
                usuarioId
            }, inicio, fim);

            ReferenciaRepository refRep = new ReferenciaRepository(_db);

            var referencias = await refRep.GetReferenciasAsync(usuarioId, inicio, fim);

            var referenciaAtual = await refRep.GetReferenciaAsync(usuarioId);

            result.Referencias.Clear();
            result.Referencias.AddRange(referencias);
            result.ReferenciaAtual = referenciaAtual;

            if (ControleAcesso.TemAcesso(SegurancaResources.GERENCIAR_ATIVIDADES_FUNCIONARIOS))
            {
                UsuarioApplication usuapp = new UsuarioApplication(_db);
                var modelo = await usuapp.GetUsuariosComAtrasoNoEnvioAsync();

                result.UsuariosComAtrasoNoLancamento = modelo.Count;
            }


            return(result);
        }
        public bool Create(Usuario usuario, ControleAcesso controleAcesso)
        {
            DbSet <Usuario> dsUsuario = null;

            using (_context)
            {
                using (var dbContextTransaction = _context.Database.BeginTransaction())
                {
                    try
                    {
                        dsUsuario = _context.Set <Usuario>();
                        dsUsuario.Add(usuario);

                        _context.SaveChanges();

                        string sql = "INSERT INTO[dbo].[ControleAcesso] ([login], [senha], [idUsuario]) VALUES (@login, @senha, @idUsuario)";
                        _context.Database.ExecuteSqlCommand(sql, new SqlParameter("@login", controleAcesso.Login), new SqlParameter("@senha", controleAcesso.Senha), new SqlParameter("@idUsuario", usuario.Id.Value));

                        dbContextTransaction.Commit();
                        return(true);
                    }
                    catch (Exception)
                    {
                        dbContextTransaction.Rollback();
                    }
                }
            }
            return(false);
        }
예제 #3
0
        public object FindByLogin(ControleAcesso controleAcesso)
        {
            bool credentialsValid = false;

            if (controleAcesso != null && !string.IsNullOrWhiteSpace(controleAcesso.Login))
            {
                ControleAcesso baseLogin = _repositorio.FindByLogin(controleAcesso.Login);
                credentialsValid = (baseLogin != null && controleAcesso.Login == baseLogin.Login && controleAcesso.Senha == baseLogin.Senha);
            }
            if (credentialsValid)
            {
                ClaimsIdentity identity = new ClaimsIdentity(
                    new GenericIdentity(controleAcesso.Login, "Login"),
                    new[]
                {
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                    new Claim(JwtRegisteredClaimNames.UniqueName, controleAcesso.Login)
                });

                DateTime createDate     = DateTime.Now;
                DateTime expirationDate = createDate + TimeSpan.FromSeconds(_tokenConfiguration.Seconds);

                JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
                string token = CreateToken(identity, createDate, expirationDate, handler);

                return(SuccessObject(createDate, expirationDate, token, controleAcesso.Login));
            }
            else
            {
                return(ExceptionObject());
            }
        }
예제 #4
0
        public IActionResult Post([FromBody] ControleAcesso controleAcesso)
        {
            if (controleAcesso == null)
            {
                return(BadRequest());
            }

            return(new ObjectResult(_controleAcessoBusiness.FindByLogin(controleAcesso)));
        }
예제 #5
0
        public async Task <ActionResult> NovoControleAcesso(int empresaId, int tipoAcesso)
        {
            var empresas = await this.service.RetornarTodasEmpresas();

            ViewData.Add("EmpresasForSelectList", PreparaParaListaDeEmpresas(empresas, null));

            ViewData.Add("AcessosEnum", PreparaParaListaDeTiposAcesso());

            var _enumAcesso = (EnumAreaAcesso)Enum.Parse(typeof(EnumAreaAcesso), tipoAcesso.ToString());
            var _acesso     = new ControleAcesso {
                EmpresaId = empresaId, AreaAcesso = _enumAcesso
            };

            if (await this.repo.InserirNovoControleAcesso(_acesso))
            {
                return(RedirectToAction("ListarControlesAcessos"));
            }

            return(View("Index"));
        }
예제 #6
0
 public bool Create(Usuario usuario, ControleAcesso controleAcesso)
 {
     return(_repositorio.Create(usuario, controleAcesso));
 }
 public ControleAcesso FindByEmail(ControleAcesso controleAcesso)
 {
     return(_context.ControleAcesso.SingleOrDefault(prop => prop.Login.Equals(controleAcesso.Login)));
 }
예제 #8
0
        public async Task <JsonResult> CarregaReferencia(int id)
        {
            var referencia = await db.Referencias.FindAsync(id);

            referencia.SincronizaAtividades(new CalendarioServices());
            var app = new AtividadeApplication(db);


            var atvidx = await app.GetAtividadeIndexAsync(referencia.Id);

            var refvm = new
            {
                Id               = referencia.Id,
                PrevistoDoMes    = referencia.Previsto.BigTimeSpanToString(),
                PrevistoCorrente = referencia.PrevistoCorrente.BigTimeSpanToString(),
                RealizadoDoMes   = referencia.Realizado.BigTimeSpanToString(),

                SaldoDoMes = referencia.SaldoDoMes.BigTimeSpanToString(),
                Saldo      = referencia.Saldo.BigTimeSpanToString(),

                BancoDeHoras = referencia.BancoDeHoras.BigTimeSpanToString(),

                Ano = referencia.Ano.ToString(),
                Mes = referencia.Mes.ToString("D2"),

                Atividades = ControleAcesso.TemAcesso(SegurancaResources.EDITAR_ATIVIDADE) ?

                             atvidx.Atividades.Select(x =>
                                                      new string[] {
                    x.ProjectNodeNome,
                    x.TipoAtividadeNome,
                    x.Observacao,
                    x.Inicio.ToString("dd/MM/yyyy"),
                    x.Inicio.ToString("HH:mm"),
                    x.Fim.ToString("HH:mm"),
                    ((TimeSpan)(x.Fim - x.Inicio)).TimeSpanToString(),
                    x.Inicio.ToString("yyyy-MM-dd"),
                    x.ReferenciaFechado?"":"<a href='" + Url.Action("Edit", "Home", new { id = x.Id.ToString() }) + "'><span class='glyphicon glyphicon-edit'></span></a>",
                    x.ReferenciaFechado?"":"<span data-id='" + x.Id.ToString() + "' class='glyphicon glyphicon-remove delete-button' id='spdeletar" + x.Id.ToString() + "'></span>",
                }
                                                      ).ToArray() : atvidx.Atividades.Select(x =>
                                                                                             new string[] {
                    x.ProjectNodeNome,
                    x.TipoAtividadeNome,
                    x.Observacao,
                    x.Inicio.ToString("dd/MM/yyyy"),
                    x.Inicio.ToString("HH:mm"),
                    x.Fim.ToString("HH:mm"),
                    ((TimeSpan)(x.Fim - x.Inicio)).TimeSpanToString(),
                    x.Inicio.ToString("yyyy-MM-dd")
                }
                                                                                             ).ToArray(),

                ConsolidadoDiario = atvidx.ConsolidadoDiario.Select(x =>

                                                                    new string[] {
                    x.Data.ToString("dd/MM/yyyy"),
                    x.Horas.TimeSpanToString(),
                    x.ClienteNome,
                    x.Data.ToString("yyyy-MM-dd")
                }

                                                                    ).ToArray()
            };

            return(Json(refvm));
        }
 public bool Authorize([NotNull] DashboardContext context)
 {
     return(ControleAcesso.TemAcesso(SegurancaResources.JOBS));
 }