public async Task <Mensagem> AddWithControl(Emprestimo objeto) { using (var db = new ContextBase(_OptionsBuilder)) { Mensagem mensagem = new Mensagem(); bool atraso = false; try { var cant = db.Emprestimos.Where(x => x.IdLeitor == objeto.IdLeitor && x.DFIm == null); var ultimo = db.Emprestimos.Where(x => x.IdLeitor == objeto.IdLeitor).ToArray().LastOrDefault(); if (ultimo == null) { atraso = false; } else { DateTime date = (DateTime)ultimo.DFIm; if (ultimo.DInicio.AddDays(30) < date) { atraso = false; } else { atraso = true; } } if (cant.Count() < 2) { DateTime entrega = (DateTime)ultimo.DFIm; if (atraso && entrega.AddDays(30) < DateTime.Now) { mensagem.Titulo = ""; mensagem.Corpo = "O leitor esta impossibilitado, tem que esperar até o " + entrega.AddDays(30).ToString(); } else { await db.Emprestimos.AddAsync(objeto); await db.SaveChangesAsync(); mensagem.Titulo = "Info"; mensagem.Corpo = "O cadastro foi efectuado com sucesso !!!"; } } else { mensagem.Titulo = ""; mensagem.Corpo = "Erro, limite excedido, o leitor registrou 2 livros em sua posse."; } return(mensagem); } catch (Exception) { mensagem.Titulo = ""; mensagem.Corpo = "Erro, no BD"; return(mensagem); } } }