Oi pessoal, refatorei a lógica do método 'Propoe' usando Linq. Ficou bom? Teria alguma forma de refatorar ainda mais?
public class Leilao
{
public string Descricao { get; set; }
public List<Lance> Lances { get; private set; }
public Leilao(string descricao)
{
this.Descricao = descricao;
this.Lances = new List<Lance>();
}
public void Propoe(Lance lance)
{
Usuario usuarioDoUltimoLance = this.Lances
.Select(s => s.Usuario)
.LastOrDefault();
if (lance.Usuario != usuarioDoUltimoLance)
{
bool jaPossui5Lances = this.Lances
.Where(l => l.Usuario == lance.Usuario)
.ToList()
.Count >= 5;
if (jaPossui5Lances == false)
{
this.Lances.Add(lance);
}
}
}
}
Obrigado