public ActionResult Login(LoginViewModel formModel) { var viewModelError = new ViewModelErrors(); if (ModelState.IsValid) { var _pessoa = new Pessoa(); if (LoginModel.ValidarLogin(db, ref viewModelError, formModel, out _pessoa)) { var cookieData = string.Format("Autorize-{0}-{1}-{2}", _pessoa.Tipo, _pessoa.Id, _pessoa.Login); FormsAuthentication.SetAuthCookie(cookieData, false); if (!string.IsNullOrEmpty(Request.QueryString["ReturnUrl"])) Response.Redirect(Request.QueryString["ReturnUrl"]); else return RedirectToAction("Index", "Home"); } } ModelState.MergeErrors(viewModelError); this.AddNotification(Constantes.NaoFoiPossivelExecutarAOperacaoPorFavorVerifiqueAsMensagensDeValidacao, NotificationType.ERROR); formModel.Senha = string.Empty; ViewBag.Title = "Login"; return View(formModel); }
public ActionResult Devolver(DevolucaoViewModel formModel) { var viewModelError = new ViewModelErrors(); if (ModelState.IsValid) { var objeto = db.Emprestimo.FirstOrDefault(p => p.Id == formModel.Id); if (DevolucoesModel.ValidarObjeto(db, ref viewModelError, objeto, formModel)) { DevolucoesModel.Save(db, objeto, formModel); this.AddNotification(string.Format(Constantes._SalvaComSucesso, GetModuleNameSingular()), NotificationType.SUCCESS); return RedirectToAction("Search"); } } ModelState.MergeErrors(viewModelError); this.AddNotification(Constantes.NaoFoiPossivelExecutarAOperacaoPorFavorVerifiqueAsMensagensDeValidacao, NotificationType.ERROR); formModel = DevolucoesModel.GetViewModel(db, formModel.Id.Value); ViewBag.Title = GetModuleNamePlural(); ViewBag.Subtitle = string.Format("Incluir {0}", GetModuleNameSingular()); return View("Devolver", formModel); }
/// <summary> /// Adiciona todos os erros contidos no ViewModelErrors ao ModelState, e remove os errors /// cujas chaves foram inseridas para remoção com o método 'RemoveErrorKey' /// </summary> /// <param name="modelState"></param> /// <param name="viewModelError">ViewModelError que será mesclado ao ModelState.</param> public static void MergeErrors(this ModelStateDictionary modelState, ViewModelErrors viewModelError) { foreach (var removeKey in viewModelError.KeysToRemove) { modelState.Remove(removeKey); } foreach (var error in viewModelError.Errors) { modelState.AddModelError(error.Item1, error.Item2); } }
/// <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 ActionResult Edit(LivroViewModel formModel) { if (!TemPermissao(formModel.Id.HasValue ? Enumerations.Generico.TipoAcao.Editar : Enumerations.Generico.TipoAcao.Cadastrar, permissoesAdministrador, permissoesBibliotecario, permissoesAluno)) return RedirectToAction("Search"); var viewModelError = new ViewModelErrors(); if (ModelState.IsValid) { var objeto = !formModel.Id.HasValue ? new Livro() : db.Livro.FirstOrDefault(p => p.Id == formModel.Id); if (LivrosModel.ValidarObjeto(db, ref viewModelError, objeto, formModel)) { LivrosModel.Save(db, objeto, formModel); this.AddNotification(string.Format(Constantes._SalvoComSucesso, GetModuleNameSingular()), NotificationType.SUCCESS); return RedirectToAction("Search"); } } ModelState.MergeErrors(viewModelError); this.AddNotification(Constantes.NaoFoiPossivelExecutarAOperacaoPorFavorVerifiqueAsMensagensDeValidacao, NotificationType.ERROR); ViewBag.ListEstadoConservacao = LivrosModel.GetListItemEstadoConservacaoLivro(formModel.EstadoConservacaoId); ViewBag.ListBaixado = GenericosModel.GetListItemSimOuNao(formModel.BaixadoId); ViewBag.Title = GetModuleNamePlural(); ViewBag.Subtitle = string.Format("{0} {1}", (formModel.Id.HasValue ? "Editar" : "Cadastrar"), GetModuleNameSingular()); return View("Edit", formModel); }
/// <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; }
/// <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; }
/// <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; }