/// <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); }
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; }
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; }
/// <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); }
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; }
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(); }
/// <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; }
/// <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; }
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; }
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(); }
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()); }
public static int GetStatus(SBSCEntities db, int id) { var livro = db.Livro.FirstOrDefault(q => q.Id == id); return GetStatus(livro); }
/// <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; }
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(); }
/// <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; }
public static int GetTotalLinkedRecords(SBSCEntities db, int id) { var values = GetTotalByItemLinkedRecords(db, id); return (values.Item1 + values.Item2); }
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; }
/// <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; }
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(); }
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; }
/// <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; }