Exemplo n.º 1
0
        public ActionResult Add(UsuarioVM usuarioRecebido, int[] idCursos)
        {
            bool loginExiste  = ObterListaUsuarios().Where(u => u.Login.Equals(usuarioRecebido.Login, StringComparison.InvariantCultureIgnoreCase) && !u.Id.Equals(usuarioRecebido.Id)).ToList().Count > 0;
            bool codigoExiste = ObterListaUsuarios().Where(u => u.Codigo.Equals(usuarioRecebido.Codigo, StringComparison.InvariantCultureIgnoreCase) && !u.Id.Equals(usuarioRecebido.Id)).ToList().Count > 0;

            if (loginExiste)
            {
                ModelState.AddModelError("Login", "O login informado já existe.");
            }
            if (codigoExiste)
            {
                ModelState.AddModelError("Codigo", "Já existe um usuario com esse código.");
            }

            if (ModelState.IsValid)
            {
                Usuario usuarioSalvo = usuarioRecebido.ToUsuario();
                if (idCursos != null)
                {
                    foreach (int id in idCursos)
                    {
                        Curso curso = ObterListaCursos()
                                      .Where(c => c.Id.Equals(id))
                                      .FirstOrDefault();
                        if (curso == null)
                        {
                            return(HttpNotFound());
                        }
                        usuarioSalvo.Cursos.Add(curso);
                        _cursoRepository.Merge(curso);
                    }
                }
                else
                {
                    usuarioSalvo.Cursos = new List <Curso>();
                }
                usuarioSalvo.Senha = "12345@a".Encrypt();

                _usuarioRepository.Persist(usuarioSalvo);

                return(RedirectToAction("Index"));
            }
            ViewBag.Cursos = ObterListaCursos().ToCursoVM();

            return(View(usuarioRecebido));
        }