public async Task <Mensagem> AddUnique(Reserva objeto) { using (var data = new ContextBase(_OptionsBuilder)) { Mensagem mensagem = new Mensagem(); bool livre = false; var reserva = data.Reservas.Where(x => x.Ativo == true && x.IdLivro == objeto.IdLivro).ToArray().LastOrDefault(); // uma reserva dura 1 día if (reserva == null) { livre = true; } else { if (reserva.Ativo == true && DateTime.Now < reserva.Data.AddDays(1)) { livre = true; reserva.Ativo = false; data.Update(reserva); await data.SaveChangesAsync(); } else { livre = false; } } var emprestimos = data.Emprestimos.Where(x => x.IdLivro == objeto.IdLivro && x.DFIm == null).Count(); if (livre && emprestimos == 0) { await data.AddAsync(objeto); await data.SaveChangesAsync(); mensagem.Titulo = "Info"; mensagem.Corpo = "O cadastro foi efectuado com sucesso !!!"; } else { mensagem.Titulo = ""; mensagem.Corpo = "Erro, o livro não esta dísponivel. !!!"; } return(mensagem); } }
public async Task Delete(T objeto) { using (var data = new ContextBase(_OptionsBuilder)) { data.Set <T>().Remove(objeto); await data.SaveChangesAsync(); } }
public async Task Add(T objeto) { using (var data = new ContextBase(_OptionsBuilder)) { await data.Set <T>().AddAsync(objeto); await data.SaveChangesAsync(); } }
public async Task <Mensagem> Update_msg(Emprestimo objeto) { using (var db = new ContextBase(_OptionsBuilder)) { Mensagem mensagem = new Mensagem(); try { db.Update(objeto); await db.SaveChangesAsync(); mensagem.Titulo = "Info"; mensagem.Corpo = "O cadastro foi efectuado com sucesso !!!"; } catch (Exception) { mensagem.Titulo = ""; mensagem.Corpo = "Erro, o cadastro não foi efectuado com sucesso !!!"; } return(mensagem); } }
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); } } }