public async Task AvaliarPerfil(Guid perfilId, IDictionary <Guid, double> habilidadesAvaliadas) { PerfilHabilidades perfil = await Repository.ObterPorIdComHabilidades(perfilId); if (perfil is null) { await Notify("O perfil informado não foi encontrado na base de dados."); } if (perfil != null) { IEnumerable <HabilidadeUsuario> habilidadesParaAvaliar = perfil.HabilidadesUsuario .Where(h => habilidadesAvaliadas.Select(h => h.Key).Contains(h.Id)); foreach (HabilidadeUsuario habilidade in habilidadesParaAvaliar) { AvaliacaoHabilidade avaliacao = new AvaliacaoHabilidade(perfil.UsuarioId, habilidadesAvaliadas[habilidade.Id]); habilidade.AdicionarAvaliacaoHabilidade(avaliacao); _habilidadeUsuarioRepository.AdicionarAvaliacaoHabilidade(avaliacao); } _habilidadeUsuarioRepository.AtualizarHabilidadesUsuario(habilidadesParaAvaliar); Repository.AtualizarPerfilHabilidades(perfil); await _habilidadeUsuarioRepository.Commit(); await Repository.Commit(); } }
public void HabilidadeUsuario_AdicionarAvaliacaoHabilidade_DeveAdicionarUmaAvaliacaoNaHabilidadeDoUsuario() { //Arrange HabilidadeUsuario habilidadeUsuario = _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido(); AvaliacaoHabilidade avaliacao = _fixtureWrapper.AvaliacaoHabilidade.CriarAvaliacaoHabilidadeValida(); //Act habilidadeUsuario.AdicionarAvaliacaoHabilidade(avaliacao); //Assert habilidadeUsuario.Avaliacoes.Should().HaveCount(1); habilidadeUsuario.Nota.Should().BeGreaterOrEqualTo(0); habilidadeUsuario.Nota.Should().Be(avaliacao.Nota); habilidadeUsuario.Id.Should().Be(avaliacao.HabilidadeUsuarioId); }
public void HabilidadeUsuario_AdicionarAvaliacoesHabilidade_DeveAdicionarUmaColecaoDeAvaliacoesNaHabilidadeDoUsuario() { //Arrange HabilidadeUsuario habilidadeUsuario = _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido(); IEnumerable <AvaliacaoHabilidade> avaliacoes = new AvaliacaoHabilidade[] { _fixtureWrapper.AvaliacaoHabilidade.CriarAvaliacaoHabilidadeValida(), _fixtureWrapper.AvaliacaoHabilidade.CriarAvaliacaoHabilidadeValida(), _fixtureWrapper.AvaliacaoHabilidade.CriarAvaliacaoHabilidadeValida() }; //Act habilidadeUsuario.AdicionarAvaliacoesHabilidade(avaliacoes); //Assert habilidadeUsuario.Avaliacoes.Should().HaveCount(3); habilidadeUsuario.Nota.Should().BeGreaterOrEqualTo(0); habilidadeUsuario.Nota.Should().Be(avaliacoes.Average(a => a.Nota)); habilidadeUsuario.Id.Should().Be(avaliacoes.Select(s => s.HabilidadeUsuarioId).Distinct().Single()); }
public void AdicionarAvaliacaoHabilidade(AvaliacaoHabilidade avaliacaoHabilidade) { _context.AvaliacoesHabilidade.Add(avaliacaoHabilidade); }