Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #4
0
        /// <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;
        }
Example #5
0
        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);
        }
Example #6
0
        /// <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;
        }
Example #7
0
        /// <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;
        }
Example #8
0
        /// <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;
        }