/// <summary> /// Realiza o cálculo em pontos da família /// </summary> /// <param name="familia"></param> /// <returns></returns> public SorteioDto CalcularPontuacaoTotal(Familia familia) { var pontosRenda = CalcularPontuacaoPorRenda(familia); var pontosIdadePretendente = CalcularPontuacaoPorIdadePretendente(familia); var pontosNumeroDependentes = CalcularPontuacaoPeloNumeroDeDependentes(familia); var criteriosAtendidos = 0; criteriosAtendidos += (pontosRenda > 0 ? 1 : 0); criteriosAtendidos += (pontosIdadePretendente > 0 ? 1 : 0); criteriosAtendidos += (pontosNumeroDependentes > 0 ? 1 : 0); var pontosTotais = pontosRenda + pontosIdadePretendente + pontosNumeroDependentes; var sorteioFamilia = new SorteioDto { FamiliaId = familia.Id, QuantidadeDeCriterios = criteriosAtendidos, DataSorteio = DateTime.Now, PontuacaoTotal = pontosTotais }; return(sorteioFamilia); }
public void Post(SorteioDto sorteio) { ExecuteProcedure(Procedures.SP_AddSorteio); AddParameter("@Nome", sorteio.Nome); AddParameter("@QtdItens", sorteio.QtdeItens); AddParameter("@DataSorteio", sorteio.DataSorteio); AddParameter("@IdCriador", sorteio.IdCriador); ExecuteNonQuery(); }
public ActionResult CreateConfirmed(SorteioDto sorteio) { var response = _sorteioAppService.Post(sorteio); if (response.IsSuccessStatusCode) { return(Json("OK")); } return(ErrorMessage("Erro ao criar Sorteio")); }
public ActionResult EditConfirmed(SorteioDto sorteio) { var response = _sorteioAppService.Put(sorteio); if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } return(ErrorMessage("Erro ao editar sorteio")); }
public void Put(SorteioDto sorteio) { ExecuteProcedure(Procedures.SP_UpdSorteio); AddParameter("@Id", sorteio.Id); AddParameter("@Nome", sorteio.Nome); AddParameter("@QtdItens", sorteio.QtdeItens); AddParameter("@DataSorteio", sorteio.DataSorteio); AddParameter("@Ativo", sorteio.Ativo); ExecuteNonQuery(); }
public async Task <ActionResult <SorteioDto> > Adicionar(SorteioDto sorteioDto) { if (!ModelState.IsValid) { return(CustomResponse(ModelState)); } await _sorteioService.Adicionar(_mapper.Map <Sorteio>(sorteioDto)); return(CustomResponse(sorteioDto)); }
public async Task <List <int> > RetornaSorteioQuina() { var concursoVigente = _concursoRepository.ObterConcursoVigente(); if (concursoVigente == null) { return(null); } var client = new HttpClient(); var html = await client.GetStringAsync("http://loterias.caixa.gov.br/wps/portal/loterias"); var document = new HtmlDocument(); document.LoadHtml(html); var ul = document.DocumentNode.Descendants("ul") .Where(node => node.GetAttributeValue("class", "") .Equals("resultado-loteria quina")) .FirstOrDefault() .Descendants("li").ToList(); var dezenas = new List <int>(); foreach (var item in ul) { dezenas.Add(Convert.ToInt32(item.InnerText)); } SorteioDto sorteio = new SorteioDto { Dezena_01 = dezenas[0], Dezena_02 = dezenas[1], Dezena_03 = dezenas[2], Dezena_04 = dezenas[3], Dezena_05 = dezenas[4], ConcursoId = concursoVigente.Id, Data = DateTime.Now }; var sorteiosExistentes = await ObterSorteiosPorConcurso(concursoVigente.Id); if (sorteiosExistentes.Any(s => sorteio.Data.Date.Equals(s.Data.Date))) { NotificarErro("Esse sorteio já foi inserido na base de dados!"); return(null); } await Adicionar(sorteio); return(dezenas); }
public SorteioDto Get() { var familia = new SorteioDto(); if (!_memoryCache.TryGetValue("sorteio", out familia)) { familia = _service.SortearFamilia(); MemoryCacheEntryOptions cacheOptions = new MemoryCacheEntryOptions(); cacheOptions.SetPriority(CacheItemPriority.High); cacheOptions.AbsoluteExpiration = DateTime.Now.AddMinutes(10); _memoryCache.Set("sorteio", familia, cacheOptions); } return(familia); }
public async Task <ActionResult <SorteioDto> > Atualizar(Guid id, SorteioDto SorteioDto) { if (id != SorteioDto.Id) { NotificarErro("O id informado não é o mesmo que foi passado na consulta"); return(CustomResponse(SorteioDto)); } if (!ModelState.IsValid) { return(CustomResponse(ModelState)); } await _sorteioService.Atualizar(_mapper.Map <Sorteio>(SorteioDto)); return(CustomResponse(SorteioDto)); }
/// <summary> /// Realiza o sorteio da família baseado em sua pontuação /// </summary> /// <returns></returns> public SorteioDto SortearFamilia() { var familiasDisponiveis = _repo.Query().Where(p => p.Status == 0).ToList(); SorteioDto familiaSelecionada = null; foreach (var familia in familiasDisponiveis) { var pontos = CalcularPontuacaoTotal(familia); if (familiaSelecionada == null || familiaSelecionada.PontuacaoTotal < pontos.PontuacaoTotal) { familiaSelecionada = pontos; } } //Cadastrar no banco que a família foi contemplada AlterarStatusFamilia(familiaSelecionada); return(familiaSelecionada); }
public SorteioDto GetById(int id) { ExecuteProcedure(Procedures.SP_ListarSorteioPorId); AddParameter("@Id", id); var sorteio = new SorteioDto(); using (var r = ExecuteReader()) { if (r.Read()) { sorteio = new SorteioDto { Id = r.GetInt32(r.GetOrdinal("Id")), Nome = r["Nome"].ToString(), QtdeItens = r.GetInt32(r.GetOrdinal("QtdItens")), QtdParticipantes = r.GetInt32(r.GetOrdinal("NumeroParticipantes")), IdCriador = r.GetInt32(r.GetOrdinal("IdCriador")), DataSorteio = r.GetDateTime(r.GetOrdinal("DataSorteio")), NomeCriador = r["NomeCriador"].ToString(), Ativo = r.GetBoolean(r.GetOrdinal("Ativo")) } } ; if (r.NextResult()) { while (r.Read()) { sorteio.SorteioParticipantes.Add(new SorteioParticipanteDto { Id_Participante = r.GetInt32(r.GetOrdinal("Id_Participante")), Nome_Participante = r["Nome_Participante"].ToString() }); } } ; } return(sorteio); }
public IHttpActionResult Put(SorteioDto sorteio) { _sorteioService.Put(sorteio); return(Ok()); }
public bool AlterarStatusFamilia(SorteioDto familia) { //Não tenho banco para implementar return(true); }
public HttpResponseMessage Put(SorteioDto sorteio) { return(_httpClient.PutAsync("http://localhost:2002/api/sorteio", sorteio, JsonMediaTypeFormatter).Result); }
public SorteioParticipanteDto() { Usuario = new Usuario(); Sorteio = new SorteioDto(); }
public string Put(SorteioDto sorteio) { _sorteioRepository.Put(sorteio); return(string.Empty); }