private EstatisticaDto ObterProgressoUsuario(List <ResumoQuantitativoHelper> resumosUsuarios, UsuarioInfoDTO usuarioInfo, string nomeProjeto) { var resumosUsuariosAtivos = resumosUsuarios.Where( x => Configuracao.Xml.LoginsAtivos(nomeProjeto).Contains(x.Login)).ToList(); var resumo = resumosUsuariosAtivos.FirstOrDefault(x => x.IdUsuario == usuarioInfo.Id); if (resumo == null) { throw new Exception("Estatística não encontrada"); } EstatisticaDto e = new EstatisticaDto(); e.Nome = usuarioInfo.Nome; e.Login = usuarioInfo.Login; e.Imagem = usuarioInfo.Imagem; e.QuantidadeAtividadesTotal = resumosUsuarios.Sum(x => x.QuantidadeTarefasConcluidas + x.QuantidadeProblemasConcluidos); e.QuantidadeAtividadesJogador = resumo.QuantidadeTarefasConcluidas + resumo.QuantidadeProblemasConcluidos; e.QuantidadeAtividadesPerdidas = resumo.QuantidadeAtividadesFeitasQueOutroConcluiu; e.QuantidadeAtividadesReabertas = resumo.QuantidadeAtividadesConcluidasReabertas; e.PorcentagemAtividadesJogador = CalcularPorcentagem(e.QuantidadeAtividadesJogador, e.QuantidadeAtividadesTotal); e.PorcentagemAtividadesPerdidas = CalcularPorcentagem(e.QuantidadeAtividadesPerdidas, e.QuantidadeAtividadesJogador); e.PorcentagemAtividadesReabertas = CalcularPorcentagem(e.QuantidadeAtividadesReabertas, e.QuantidadeAtividadesJogador); return(e); }
private EstatisticaModel ParseToEstatisticaModel(EstatisticaDto dto) { EstatisticaModel model = new EstatisticaModel(); model.Nome = dto.Nome; model.Login = dto.Login; model.ImagemByte = dto.Imagem; model.MediaAtividadesSemana = dto.MediaAtividadesSemana; model.QuantidadeAtividadesTotal = dto.QuantidadeAtividadesTotal; model.QuantidadeAtividadesJogador = dto.QuantidadeAtividadesJogador; model.QuantidadeAtividadesReabertas = dto.QuantidadeAtividadesReabertas; model.QuantidadeAtividadesPerdidas = dto.QuantidadeAtividadesPerdidas; model.PorcentagemAtividadesJogador = dto.PorcentagemAtividadesJogador; model.PorcentagemAtividadesReabertas = dto.PorcentagemAtividadesReabertas; model.PorcentagemAtividadesPerdidas = dto.PorcentagemAtividadesPerdidas; return(model); }