public void TesteVelocidade10()
        {
            Random gen = new Random();
            int number = 10;

            HashSet<Vaga> vagas = new HashSet<Vaga>();
            HashSet<Usuario> usuarios = new HashSet<Usuario>();

            for (int i = 1; i <= number; ++i)
            {
                vagas.Add(new Vaga
                {
                    ID = i,
                    avaliacoes = new HashSet<Avaliacao>()
                });

                usuarios.Add(new Usuario
                {
                    ID = i,
                    avaliacoes = new HashSet<Avaliacao>()
                });
            }

            int j = 0;

            foreach (Usuario usuario in usuarios)
            {
                foreach (Vaga vaga in vagas)
                {
                    Avaliacao tempAvaliacao = new Avaliacao {
                        usuario = usuario,
                        vaga = vaga,
                        ID = ++j,
                        Gostou = gen.Next(100) > 49
                    };

                    usuario.avaliacoes.Add(tempAvaliacao);
                    vaga.avaliacoes.Add(tempAvaliacao);
                }
            }

            jaccardService.OrdenaVagasPorCoeficienteDeJaccard(vagas, usuarios.FirstOrDefault());
        }
Example #2
0
        public bool AvaliaVaga(bool like, int vagaId, int usuarioID)
        {
            Usuario usuario = _uow.Usuarios.GetByID(usuarioID);
            Vaga vaga = _uow.Vagas.GetByID(vagaId);

            if (usuario != null && vaga != null)
            {
                IEnumerable<Avaliacao> avaliacoes = usuario.avaliacoes.Where(a => a.vaga.ID == vagaId);

                if (avaliacoes.Count() > 1)
                {
                    foreach (Avaliacao avaliacaoTemp in avaliacoes.Skip(1).ToList())
                    {
                        _uow.Avaliacoes.Delete(avaliacaoTemp);
                    }
                }

                Avaliacao avaliacao = avaliacoes.FirstOrDefault();

                if (avaliacao != null)
                {
                    avaliacao.Gostou = like;
                    _uow.Avaliacoes.Update(avaliacao);
                }
                else
                {
                    avaliacao = new Avaliacao();
                    avaliacao.vaga = vaga;
                    avaliacao.usuario = usuario;
                    avaliacao.Gostou = like;
                    _uow.Avaliacoes.Insert(avaliacao);
                }

                _uow.Save();
                return true;
            }

            return false;
        }