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()); }
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; }