public void TerminarPregao() { Ganhador = Lances .DefaultIfEmpty(new Lance(null, 0)) .OrderBy(l => l.Valor) .LastOrDefault(); }
public void TerminaPregao() { Ganhador = Lances .DefaultIfEmpty(new Lance(null, 0)) .OrderBy(l => l.Valor).LastOrDefault(); Estado = EstadoLeilao.LeilaoFinalizado; }
public void TerminaPregao() { if (Estado != EstadoLeilao.LeilaoEmAndamento) { throw new InvalidOperationException("Não é possível terminar o pregão sem que tenha começado. Para isso utilize o método inicia pregão."); } Ganhador = Lances .DefaultIfEmpty(new Lance(null, 0)) .OrderBy(l => l.Valor).LastOrDefault(); Estado = EstadoLeilao.LeilaoFinalizado; }
public void TerminaPregao() { if (Estado != EstadoLeilao.LeilaoEmAndamento) { throw new InvalidOperationException("Não é possível terminar sem que ele tenha começado."); } Ganhador = Lances .DefaultIfEmpty(new Lance(null, 0)) .OrderBy(x => x.Valor) .LastOrDefault(); Estado = EstadoLeilao.LeilaoFinalizado; }
public void ChecarSeLancePodeSerAdicionado(Lance lance) { bool leilaoNaoPermiteAceitarLances = EstadoLeilao != EstadoLeilao.EmAndamento; bool eOClienteDoUltimoLance = Lances .DefaultIfEmpty(new Lance(null, 0)) .LastOrDefault() .Cliente == lance.Cliente; if (leilaoNaoPermiteAceitarLances) { throw GetLeilaoExceptionFactory().CriarLeilaoExceptionParaRecebeLance(EstadoLeilao); } if (eOClienteDoUltimoLance) { throw GetLeilaoExceptionFactory().CriarLeilaoException("Cliente deu o último lance! Ação negada!"); } }
public void TerminaPregao() { if (Estado != EstadoLeilao.LeilaoEmAndamento) { throw new System.InvalidOperationException(); } if (ValorDestino > 0) { //modelidade oferta superior mais proxima } else { Ganhador = Lances .DefaultIfEmpty(new Lance(null, 0)) .OrderBy(l => l.Valor) .LastOrDefault(); } Estado = EstadoLeilao.LeilaoFinalizado; }
public void TerminarPregao() { if (this.Estado != EstadoLeilao.LeilaoEmAndamento) { throw new InvalidOperationException(); } if (ValorBase > 0) { Vencedor = Lances.DefaultIfEmpty(new Lance(new Cliente("", new Leilao("", 0, new Bem("", ""))), 0)) .Where(x => x.Valor >= ValorBase) .OrderBy(x => x.Valor).FirstOrDefault(); } else { Vencedor = Lances.DefaultIfEmpty(new Lance(new Cliente("", new Leilao("", 0, new Bem("", ""))), 0)) .OrderBy(x => x.Valor).LastOrDefault(); } this.Estado = EstadoLeilao.LeilaoFinalizado; }