internal void delete(int id)
        {
            var db       = new bibliotecaEntities();
            var exemplar = new EXEMPLAR();

            exemplar.id = id;
            db.Entry(exemplar).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
        }
        private bool possuiReserva(EXEMPLAR exemplarDigitando, USUARIO usuario)
        {
            var reserva = (from r in exemplarDigitando.LIVRO.RESERVA
                           orderby r.id
                           select r).FirstOrDefault();

            //retorna verdadeiro se possuir uma reserva para outro usuário
            return(reserva != null && !reserva.USUARIO.Equals(usuario));
        }
 private bool exemplarEmprestado(EXEMPLAR exemplarDigitando)
 {
     using (var db = new bibliotecaEntities())
     {
         return((from e in db.EMPRESTIMO
                 where e.EXEMPLAR.id == exemplarDigitando.id
                 & e.dtDevolucao == null
                 select e).Any());
     }
 }
        internal void registrarEmprestimo(EXEMPLAR exemplarDigitando, USUARIO usuarioLogado)
        {
            if (permiteEmprestimo(exemplarDigitando, usuarioLogado))
            {
                EMPRESTIMO e = new EMPRESTIMO();
                e.fkExemplar       = exemplarDigitando.id;
                e.dtEmprestimo     = DateTime.Now.Date;
                e.dtPrazoDevolucao = e.dtEmprestimo.AddDays(usuarioLogado.PERFIL.diasParaEmprestimo);
                e.fkUsuario        = usuarioLogado.id;

                persist(e);
            }
        }
        internal void persist(EXEMPLAR exemplar)
        {
            var db = new bibliotecaEntities();

            if (exemplar.id != 0)
            {
                db.Entry(exemplar).State = System.Data.Entity.EntityState.Modified;
            }
            else
            {
                db.EXEMPLAR.Add(exemplar);
            }

            db.SaveChanges();
        }
예제 #6
0
        private void txtEmprestimo_TextChanged(object sender, EventArgs e)
        {
            int id;

            exemplarDigitando = null;
            lblNomeLivro.Text = String.Empty;
            // Busca um exemplar com o id digitado
            if (int.TryParse(txtEmprestimo.Text, out id))
            {
                exemplarDigitando = exemplarController.getByID(id);
                //atualiza label com o titulo do livro
                if (exemplarDigitando != null)
                {
                    lblNomeLivro.Text = exemplarDigitando.LIVRO.titulo;
                }
            }
        }
예제 #7
0
        private void pbSalvar_Click(object sender, EventArgs e)
        {
            ExemplarController c = new ExemplarController();

            this.exemplar = new EXEMPLAR();

            if (!txtId.Text.Equals(string.Empty))
            {
                exemplar.id = int.Parse(txtId.Text);
            }

            exemplar.perdido = chkPerdido.Checked;
            exemplar.tipo    = (TipoExemplar)(int.Parse(cbTipo.Text.Substring(0, 1)));
            exemplar.fkLivro = (int)cbLivro.SelectedValue;

            c.persist(exemplar);
            this.Close();
        }
        internal bool permiteEmprestimo(EXEMPLAR exemplarDigitando, USUARIO usuario)
        {
            UsuarioController c = new UsuarioController();

            if (usuario == null)
            {
                throw new EmprestimoFalhouException("Usuário não está logado no sistema.");
            }

            //recarrega dados do usuário
            usuario = c.getByID(usuario.id);

            if (exemplarDigitando == null)
            {
                throw new EmprestimoFalhouException("Exemplar inválido");
            }
            if (exemplarDigitando.tipo == TipoExemplar.ConsultaInterna)
            {
                throw new EmprestimoFalhouException("Exemplar apenas para consulta interna.");
            }
            if (exemplarEmprestado(exemplarDigitando))
            {
                throw new EmprestimoFalhouException("Exemplar emprestado, empréstimo não pode ser realizado");
            }
            if (possuiReserva(exemplarDigitando, usuario))
            {
                throw new EmprestimoFalhouException("Livro com reserva.");
            }
            if (c.limiteEmprestimosAtingido(usuario))
            {
                throw new EmprestimoFalhouException("Usuário excedeu limite de empréstimos");
            }
            if (c.possuiAtrasos(usuario))
            {
                throw new EmprestimoFalhouException("Usuário possui atrasos.");
            }
            if (c.possuiMulta(usuario))
            {
                throw new EmprestimoFalhouException("Usuário possui multas em aberto.");
            }
            return(true);
        }