コード例 #1
0
ファイル: Emprestimos.cs プロジェクト: anzolin/SBSC
        /// <summary>
        /// Deleta o objeto
        /// </summary>
        /// <param name="db"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public static Tuple<bool, bool, bool> Delete(SBSCEntities db, int id)
        {
            var emprestimo = db.Emprestimo.FirstOrDefault(q => q.Id == id);

            if (emprestimo == null)
                throw new ObjectNotFoundException("O registro não foi encontrado.");

            if (emprestimo.ItensEmprestimo.Any())
                return Tuple.Create(false, true, true);

            db.Emprestimo.Remove(emprestimo);
            db.SaveChanges();

            return Tuple.Create(true, false, false);
        }
コード例 #2
0
ファイル: Pessoas.cs プロジェクト: anzolin/SBSC
        public static IQueryable<Pessoa> GetBaseQuery(SBSCEntities db, PessoaSearchModel searchModel)
        {
            IQueryable<Pessoa> query = db.Pessoa.Where(q => !q.IsSistema);

            if (!string.IsNullOrEmpty(searchModel.Search))
            {
                var term = searchModel.Search.Trim();

                query = from q in query
                        where q.Nome.Contains(term)
                        || q.Login.Contains(term)
                        select q;
            }

            return query;
        }
コード例 #3
0
ファイル: Livros.cs プロジェクト: anzolin/SBSC
        public static IQueryable<Livro> GetBaseQuery(SBSCEntities db, LivroSearchModel searchModel)
        {
            IQueryable<Livro> query = db.Livro;

            if (!string.IsNullOrEmpty(searchModel.Search))
            {
                var term = searchModel.Search.Trim();

                query = from q in query
                        where q.Codigo.Contains(term)
                            || q.Titulo.Contains(term)
                            || q.Genero.Contains(term)
                            || q.Autor.Contains(term)
                            || q.Editora.Contains(term)
                            || q.Local.Contains(term)
                        select q;
            }

            return query;
        }
コード例 #4
0
ファイル: Pessoas.cs プロジェクト: anzolin/SBSC
        /// <summary>
        /// Deleta o objeto
        /// </summary>
        /// <param name="db"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public static Tuple<bool, bool, bool> Delete(SBSCEntities db, int id)
        {
            var pessoa = db.Pessoa.FirstOrDefault(q => q.Id == id);

            if (pessoa == null)
                throw new ObjectNotFoundException("O registro não foi encontrado.");

            if (pessoa.Emprestimos.Any() || pessoa.Reservas.Any())
                return Tuple.Create(false, true, true);

            if (pessoa.Emprestimos.Any())
                return Tuple.Create(false, true, false);

            if (pessoa.Reservas.Any())
                return Tuple.Create(false, false, true);

            db.Pessoa.Remove(pessoa);
            db.SaveChanges();

            return Tuple.Create(true, false, false);
        }
コード例 #5
0
ファイル: Devolucoes.cs プロジェクト: anzolin/SBSC
        public static IQueryable<Emprestimo> GetBaseQuery(SBSCEntities db, DevolucaoSearchModel searchModel)
        {
            IQueryable<Emprestimo> query = db.Emprestimo.Where(q => q.Status == (int)Enumerations.Emprestimo.StatusEmprestimo.Emprestado);

            if (!string.IsNullOrEmpty(searchModel.Search))
            {
                var term = searchModel.Search.Trim();

                query = from q in query
                        where term.Contains(q.Id.ToString())
                            // Itens do emprestimo
                            || q.ItensEmprestimo.Any(ie => ie.Livro.Titulo.Contains(term))
                            || q.ItensEmprestimo.Any(ie => ie.Livro.Genero.Contains(term))
                            || q.ItensEmprestimo.Any(ie => ie.Livro.Autor.Contains(term))
                            || q.ItensEmprestimo.Any(ie => ie.Livro.Editora.Contains(term))
                            || q.ItensEmprestimo.Any(ie => ie.Livro.Local.Contains(term))
                            // Pessoa
                            || q.Pessoa.Nome.Contains(term)
                            || q.Pessoa.Login.Contains(term)
                        select q;
            }

            return query;
        }
コード例 #6
0
ファイル: Emprestimos.cs プロジェクト: anzolin/SBSC
        public static void Save(SBSCEntities db, Emprestimo emprestimo, EmprestimoViewModel formModel)
        {
            if (emprestimo == null) throw new ArgumentNullException("pessoa");
            if (formModel == null) throw new ArgumentNullException("formModel");

            emprestimo.Id_Pessoa = formModel.PessoaId;
            emprestimo.DtEmprestimo = formModel.DtEmprestimo.Value;
            emprestimo.DtPrevisaoDevolucao = formModel.DtPrevisaoDevolucao;
            emprestimo.Status = (byte)formModel.StatusId;

            var livros = new List<ItemEmprestimoViewModel>();

            // Livro 1
            var livro1 = new ItemEmprestimoViewModel()
            {
                LivroId = formModel.Livro1Id
            };

            livros.Add(livro1);

            // Livro 2
            if (formModel.Livro2Id.HasValue)
            {
                var livro2 = new ItemEmprestimoViewModel()
                {
                    LivroId = formModel.Livro2Id.Value
                };

                livros.Add(livro2);
            }

            // Livro 3
            if (formModel.Livro3Id.HasValue)
            {
                var livro3 = new ItemEmprestimoViewModel()
                {
                    LivroId = formModel.Livro3Id.Value
                };

                livros.Add(livro3);
            }

            if (!formModel.Id.HasValue)
            {
                emprestimo.DtHrCadastro = Genericos.GetDateTimeFromBrazil();

                db.Emprestimo.Add(emprestimo);
            }

            foreach(var l in livros)
            {
                var itemEmprestimo = new ItemEmprestimo()
                {
                    Id_Emprestimo = emprestimo.Id,
                    Id_Livro = l.LivroId,
                    DtHrCadastro = Genericos.GetDateTimeFromBrazil()
                };

                if (!formModel.Id.HasValue)
                    db.ItemEmprestimo.Add(itemEmprestimo);
            }

            db.SaveChanges();
        }
コード例 #7
0
ファイル: Livros.cs プロジェクト: anzolin/SBSC
        /// <summary>
        /// Retorna uma enumeração de livro
        /// </summary>
        /// <param name="db"></param>
        /// <param name="selectValue"></param>
        /// <param name="livroId"></param>
        /// <returns></returns>
        public static IEnumerable<SelectListItem> GetListLivro(SBSCEntities db, int? selectValue, int? livroId)
        {
            // Retorna somente livros que não foram baixados
            IQueryable<Livro> query = db.Livro.Where(q => !q.IsBaixado);

            if (livroId.HasValue)
                query = query.Where(q => q.Id == livroId.Value);

            var lista = (from q in query.ToList()
                         select new SelectListItem
                         {
                             Value = q.Id.ToString(CultureInfo.InvariantCulture),
                             Text = FormatLivro(q),
                             Selected = (selectValue.HasValue ? (selectValue.Value == q.Id ? true : false) : false)
                         }).OrderBy(w => w.Text).ToList();

            return lista;
        }
コード例 #8
0
ファイル: Livros.cs プロジェクト: anzolin/SBSC
        /// <summary>
        /// Valida o objeto
        /// </summary>
        /// <param name="db"></param>
        /// <param name="viewModelError"></param>
        /// <param name="objeto"></param>
        /// <param name="formModel"></param>
        /// <returns></returns>
        public static bool ValidarObjeto(SBSCEntities db, ref ViewModelErrors viewModelError, Livro objeto, LivroViewModel formModel)
        {
            if (formModel == null) throw new ArgumentNullException("formModel");

            if (objeto == null)
            {
                viewModelError.AddModelError(string.Empty, Constantes.ORegistroNaoFoiEncontrado);

                return false;
            }

            #region Valida se já existe registro com título igual

            //var tituloIgual = db.Livro.Where(p => p.Titulo.ToLower().Equals(formModel.Titulo.Trim().ToLower()));

            //if (formModel.Id.HasValue)
            //    tituloIgual = tituloIgual.Where(p => p.Id != formModel.Id.Value);

            //if (tituloIgual.FirstOrDefault() != null)
            //    viewModelError.AddModelError("Titulo", "Já existe um livro com o 'Título' informado.");

            #endregion

            #region Valida se já existe registro com código igual

            if (!string.IsNullOrEmpty(formModel.Codigo))
            {
                var codigoIgual = db.Livro.Where(p => p.Codigo.ToLower().Equals(formModel.Codigo.Trim().ToLower()));

                if (formModel.Id.HasValue)
                    codigoIgual = codigoIgual.Where(p => p.Id != formModel.Id.Value);

                if (codigoIgual.FirstOrDefault() != null)
                    viewModelError.AddModelError("Codigo", "Já existe um livro com o 'Código' informado.");
            }

            #endregion

            return viewModelError.IsValid;
        }
コード例 #9
0
ファイル: Pessoas.cs プロジェクト: anzolin/SBSC
        public static PessoaViewModel GetViewModel(SBSCEntities db, int id)
        {
            var pessoa = db.Pessoa.FirstOrDefault(q => q.Id == id);

            if (pessoa == null)
                throw new ObjectNotFoundException("O registro não foi encontrado.");

            var viewModel = GetViewModel(pessoa);

            return viewModel;
        }
コード例 #10
0
ファイル: Devolucoes.cs プロジェクト: anzolin/SBSC
        public static void Save(SBSCEntities db, Emprestimo emprestimo, DevolucaoViewModel formModel)
        {
            if (emprestimo == null) throw new ArgumentNullException("pessoa");
            if (formModel == null) throw new ArgumentNullException("formModel");

            if (!formModel.DtDevolucao.HasValue)
                formModel.DtDevolucao = Genericos.GetDateTimeFromBrazil();

            emprestimo.Status = (byte)Enumerations.Emprestimo.StatusEmprestimo.Devolvido;

            foreach (var item in emprestimo.ItensEmprestimo)
            {
                item.DtDevolucao = formModel.DtDevolucao.Value;
            }

            db.SaveChanges();
        }
コード例 #11
0
ファイル: Livros.cs プロジェクト: anzolin/SBSC
        public static Tuple<int, int> GetTotalByItemLinkedRecords(SBSCEntities db, int id)
        {
            var objeto = db.Livro.FirstOrDefault(q => q.Id == id);

            if (objeto == null) return Tuple.Create(0, 0);

            return Tuple.Create(objeto.Reservas.Count(), objeto.ItensEmprestimo.Count());
        }
コード例 #12
0
ファイル: Livros.cs プロジェクト: anzolin/SBSC
        public static int GetStatus(SBSCEntities db, int id)
        {
            var livro = db.Livro.FirstOrDefault(q => q.Id == id);

            return GetStatus(livro);
        }
コード例 #13
0
ファイル: Pessoas.cs プロジェクト: anzolin/SBSC
        /// <summary>
        /// Valida o objeto
        /// </summary>
        /// <param name="db"></param>
        /// <param name="viewModelError"></param>
        /// <param name="objeto"></param>
        /// <param name="formModel"></param>
        /// <returns></returns>
        public static bool ValidarObjeto(SBSCEntities db, ref ViewModelErrors viewModelError, Pessoa objeto, PessoaViewModel formModel)
        {
            if (formModel == null) throw new ArgumentNullException("formModel");

            if (objeto == null)
            {
                viewModelError.AddModelError(string.Empty, Constantes.ORegistroNaoFoiEncontrado);

                return false;
            }

            #region Valida se já existe registro com nome igual

            var nomeIgual = db.Pessoa.Where(p => p.Nome.ToLower().Equals(formModel.Nome.Trim().ToLower()));

            if (formModel.Id.HasValue)
                nomeIgual = nomeIgual.Where(p => p.Id != formModel.Id.Value);

            if (nomeIgual.FirstOrDefault() != null)
                viewModelError.AddModelError("Nome", "Já existe uma pessoa com o 'Nome' informado.");

            #endregion

            #region Valida se já existe registro com código/matrícula igual

            if (!string.IsNullOrEmpty(formModel.CodigoMatricula))
            {
                var codigoMatriculaIgual = db.Pessoa.Where(p => p.CodigoMatricula.ToLower().Equals(formModel.CodigoMatricula.Trim().ToLower()));

                if (formModel.Id.HasValue)
                    codigoMatriculaIgual = codigoMatriculaIgual.Where(p => p.Id != formModel.Id.Value);

                if (codigoMatriculaIgual.FirstOrDefault() != null)
                    viewModelError.AddModelError("CodigoMatricula", "Já existe uma pessoa com o 'Código/Matrícula' informado.");
            }

            #endregion

            #region Valida se já existe registro com login igual e se senha preenchida se login preenchido

            if (!string.IsNullOrEmpty(formModel.Login))
            {
                var loginIgual = db.Pessoa.Where(p => p.Login.ToLower().Equals(formModel.Login.Trim().ToLower()));

                if (formModel.Id.HasValue)
                    loginIgual = loginIgual.Where(p => p.Id != formModel.Id.Value);

                if (loginIgual.FirstOrDefault() != null)
                    viewModelError.AddModelError("Login", "Já existe uma pessoa com o 'Login' informado.");

                // Valida se a senha está preenchida quando o login é preenchido na tela de cadastro
                if (string.IsNullOrEmpty(formModel.Senha) && !string.IsNullOrEmpty(objeto.Login))
                    viewModelError.AddModelError("Senha", "O campo 'Senha' é obrigatório.");
            }

            #endregion

            return viewModelError.IsValid;
        }
コード例 #14
0
ファイル: Pessoas.cs プロジェクト: anzolin/SBSC
        public static void Save(SBSCEntities db, Pessoa pessoa, PessoaViewModel formModel)
        {
            if (pessoa == null) throw new ArgumentNullException("pessoa");
            if (formModel == null) throw new ArgumentNullException("formModel");

            pessoa.Tipo = (byte)formModel.TipoId;
            pessoa.Sexo = (byte?)formModel.SexoId;
            pessoa.CodigoMatricula = formModel.CodigoMatricula;
            pessoa.Login = !string.IsNullOrEmpty(formModel.Login) ? formModel.Login.Trim() : string.Empty;
            pessoa.Senha = !string.IsNullOrEmpty(formModel.Senha) ? formModel.Senha.Trim() : string.Empty;
            pessoa.Nome = formModel.Nome.Trim();
            pessoa.Endereco = formModel.Endereco;
            pessoa.Bairro = formModel.Bairro;
            pessoa.CEP = formModel.CEP;
            pessoa.Cidade = formModel.Cidade;
            pessoa.UF = (byte?)formModel.UFId;
            pessoa.Telefone = formModel.Telefone;

            if (formModel.Id.HasValue)
            {
                pessoa.DtHrEdicao = Genericos.GetDateTimeFromBrazil();
            }
            else
            {
                pessoa.DtHrCadastro = Genericos.GetDateTimeFromBrazil();

                db.Pessoa.Add(pessoa);
            }

            db.SaveChanges();
        }
コード例 #15
0
ファイル: Emprestimos.cs プロジェクト: anzolin/SBSC
        /// <summary>
        /// Valida o objeto
        /// </summary>
        /// <param name="db"></param>
        /// <param name="viewModelError"></param>
        /// <param name="objeto"></param>
        /// <param name="formModel"></param>
        /// <returns></returns>
        public static bool ValidarObjeto(SBSCEntities db, ref ViewModelErrors viewModelError, Emprestimo objeto, EmprestimoViewModel formModel)
        {
            if (formModel == null) throw new ArgumentNullException("formModel");

            if (objeto == null)
            {
                viewModelError.AddModelError(string.Empty, Constantes.ORegistroNaoFoiEncontrado);

                return false;
            }

            #region Validações de livros

            var livroIndisponivel = string.Format("O livro está {0}.", EnumsHelper.GetText(Enumerations.Livro.StatusLivro.Indisponivel));
            var livroJaSelecionado = "O livro já foi selecionado.";

            // Livro indisponível
            if (Livros.GetStatus(db, formModel.Livro1Id) == (int)Enumerations.Livro.StatusLivro.Indisponivel)
            {
                viewModelError.AddModelError("Livro1Id", livroIndisponivel);
            }

            if (formModel.Livro2Id.HasValue)
            {
                // Livro já selecionado
                if (formModel.Livro1Id.Equals(formModel.Livro2Id.Value))
                    viewModelError.AddModelError("Livro2Id", livroJaSelecionado);

                // Livro indisponível
                if (Livros.GetStatus(db, formModel.Livro2Id.Value) == (int)Enumerations.Livro.StatusLivro.Indisponivel)
                    viewModelError.AddModelError("Livro2Id", livroIndisponivel);
            }

            if (formModel.Livro3Id.HasValue)
            {
                // Livro já selecionado
                if (formModel.Livro1Id.Equals(formModel.Livro3Id.Value))
                    viewModelError.AddModelError("Livro3Id", livroJaSelecionado);

                // Livro indisponível
                if (Livros.GetStatus(db, formModel.Livro3Id.Value) == (int)Enumerations.Livro.StatusLivro.Indisponivel)
                    viewModelError.AddModelError("Livro3Id", livroIndisponivel);
            }

            if (formModel.Livro2Id.HasValue && formModel.Livro3Id.HasValue)
            {
                // Livro já selecionado
                if (formModel.Livro2Id.Equals(formModel.Livro3Id.Value))
                    viewModelError.AddModelError("Livro2Id", livroJaSelecionado);

                // Livro indisponível
                if (Livros.GetStatus(db, formModel.Livro2Id.Value) == (int)Enumerations.Livro.StatusLivro.Indisponivel)
                    viewModelError.AddModelError("Livro2Id", livroIndisponivel);
            }

            #endregion

            var dateNow = Genericos.GetDateTimeFromBrazil();

            if (formModel.DtEmprestimo.HasValue && formModel.DtPrevisaoDevolucao.HasValue)
            {
                if (formModel.DtPrevisaoDevolucao.Value.Date < formModel.DtEmprestimo.Value.Date)
                    viewModelError.AddModelError("DtPrevisaoDevolucao", "A data de previsão de devolução não deve ser menor do que a data de empréstimo.");

                if (formModel.DtPrevisaoDevolucao.Value.Date == formModel.DtEmprestimo.Value.Date)
                    viewModelError.AddModelError("DtPrevisaoDevolucao", "A data de previsão de devolução não deve ser igual a data de empréstimo.");
            }

            return viewModelError.IsValid;
        }
コード例 #16
0
ファイル: Livros.cs プロジェクト: anzolin/SBSC
        public static int GetTotalLinkedRecords(SBSCEntities db, int id)
        {
            var values = GetTotalByItemLinkedRecords(db, id);

            return (values.Item1 + values.Item2);
        }
コード例 #17
0
ファイル: Livros.cs プロジェクト: anzolin/SBSC
        public static LivroViewModel GetViewModel(SBSCEntities db, int id)
        {
            var livro = db.Livro.FirstOrDefault(q => q.Id == id);

            if (livro == null)
                throw new ObjectNotFoundException("O registro não foi encontrado.");

            var viewModel = GetViewModel(livro);

            return viewModel;
        }
コード例 #18
0
ファイル: Devolucoes.cs プロジェクト: anzolin/SBSC
        /// <summary>
        /// Valida o objeto
        /// </summary>
        /// <param name="db"></param>
        /// <param name="viewModelError"></param>
        /// <param name="objeto"></param>
        /// <param name="formModel"></param>
        /// <returns></returns>
        public static bool ValidarObjeto(SBSCEntities db, ref ViewModelErrors viewModelError, Emprestimo objeto, DevolucaoViewModel formModel)
        {
            if (formModel == null) throw new ArgumentNullException("formModel");

            if (objeto == null)
            {
                viewModelError.AddModelError(string.Empty, Constantes.ORegistroNaoFoiEncontrado);

                return false;
            }

            if (formModel.DtDevolucao.HasValue)
            {
                if (formModel.DtDevolucao.Value.Date < objeto.DtEmprestimo.Date)
                    viewModelError.AddModelError("DtDevolucao", "A data de devolução não deve ser menor do que a data de empréstimo.");

                if (formModel.DtDevolucao.Value.Date == objeto.DtEmprestimo.Date)
                    viewModelError.AddModelError("DtDevolucao", "A data de devolução não deve ser igual a data de empréstimo.");
            }

            return viewModelError.IsValid;
        }
コード例 #19
0
ファイル: Livros.cs プロジェクト: anzolin/SBSC
        public static void Save(SBSCEntities db, Livro livro, LivroViewModel formModel)
        {
            if (livro == null) throw new ArgumentNullException("livro");
            if (formModel == null) throw new ArgumentNullException("formModel");

            livro.Codigo = formModel.Codigo;
            livro.Titulo = formModel.Titulo.Trim();
            livro.Genero = !string.IsNullOrEmpty(formModel.Genero) ? formModel.Genero.Trim() : string.Empty;
            livro.Autor = !string.IsNullOrEmpty(formModel.Autor) ? formModel.Autor.Trim() : string.Empty;
            livro.Editora = !string.IsNullOrEmpty(formModel.Editora) ? formModel.Editora.Trim() : string.Empty;
            livro.Ano = formModel.Ano;
            livro.EstadoConservacao = (byte)formModel.EstadoConservacaoId;
            livro.Local = !string.IsNullOrEmpty(formModel.Local) ? formModel.Local.Trim() : string.Empty;
            livro.Resumo = formModel.Resumo;

            if (formModel.BaixadoId.HasValue)
            {
                if (formModel.BaixadoId.Value == (int)Enumerations.Generico.SimOuNao.Sim)
                {
                    livro.IsBaixado = true;
                    livro.DtBaixa = Genericos.GetDateTimeFromBrazil();
                }
                else
                {
                    livro.IsBaixado = false;
                    livro.DtBaixa = (DateTime?)null;
                }
            }

            if (formModel.Id.HasValue)
            {
                livro.DtHrEdicao = Genericos.GetDateTimeFromBrazil();
            }
            else
            {
                livro.DtHrCadastro = Genericos.GetDateTimeFromBrazil();

                db.Livro.Add(livro);
            }

            db.SaveChanges();
        }
コード例 #20
0
ファイル: Devolucoes.cs プロジェクト: anzolin/SBSC
        public static DevolucaoViewModel GetViewModel(SBSCEntities db, int id)
        {
            var emprestimo = db.Emprestimo.FirstOrDefault(q => q.Id == id);

            if (emprestimo == null)
                throw new ObjectNotFoundException("O registro não foi encontrado.");

            var viewModel = GetViewModel(emprestimo);

            return viewModel;
        }
コード例 #21
0
ファイル: Pessoas.cs プロジェクト: anzolin/SBSC
        /// <summary>
        /// Retorna uma enumeração de pessoa
        /// </summary>
        /// <param name="db"></param>
        /// <param name="selectValue"></param>
        /// <param name="pessoaId"></param>
        /// <returns></returns>
        public static IEnumerable<SelectListItem> GetListPessoa(SBSCEntities db, int? selectValue, int? pessoaId)
        {
            IQueryable<Pessoa> query = db.Pessoa.Where(q => !q.IsSistema);

            if (pessoaId.HasValue)
                query = query.Where(q => q.Id == pessoaId.Value);

            var lista = (from q in query.ToList()
                         select new SelectListItem
                         {
                             Value = q.Id.ToString(CultureInfo.InvariantCulture),
                             Text = q.Nome,
                             Selected = (selectValue.HasValue ? (selectValue.Value == q.Id ? true : false) : false)
                         }).OrderBy(w => w.Text).ToList();

            return lista;
        }