public ActionResult Salvar(UsuarioViewModel viewModel) { string mensagem; WorkLifetimeManager.Value.BeginTransaction(IsolationLevel.Serializable); try { Usuario usuario; if (viewModel.Usuario.Id > 0) usuario = UsuarioRepositorio.Obter(WorkLifetimeManager.Value, viewModel.Usuario.Id); else { // Para evitar duplicação de dados. if (UsuarioRepositorio.ObterPorEmail(WorkLifetimeManager.Value, viewModel.Usuario.Email) != null) throw new InvalidOperationException("Já existe um usuário cadastrado com esse e-mail."); usuario = new Usuario(); } usuario.Nome = viewModel.Usuario.Nome; usuario.CPF = viewModel.Usuario.CPF; usuario.CREA = viewModel.Usuario.CREA; usuario.Email = viewModel.Usuario.Email; usuario.Perfil = (int) viewModel.OpcoesPerfil.SelectedValue; if (!string.IsNullOrEmpty(viewModel.Usuario.Senha)) usuario.Senha = Convert.ToBase64String(new SHA512Managed().ComputeHash(Encoding.ASCII.GetBytes(viewModel.Usuario.Senha))); UsuarioRepositorio.Salvar(WorkLifetimeManager.Value, usuario); WorkLifetimeManager.Value.Commit(); mensagem = "Operação realizada com sucesso!"; } catch (Exception exception) { WorkLifetimeManager.Value.Rollback(); mensagem = "Não foi possível realizar operação: " + exception.Message; } var usuarios = UsuarioRepositorio.BuscarTodos(WorkLifetimeManager.Value); return PartialView("Lista", new ListaUsuarioViewModel { Usuarios = usuarios, Mensagem = mensagem }); }
protected abstract void GuardarUsuarioCache(Usuario usuario);
public void Atualizar(IUnitOfWork unitOfWork, Usuario usuario) { PersistenceBroker.Atualizar(unitOfWork, usuario); }
public void Salvar(IUnitOfWork unitOfWork, Usuario usuario) { PersistenceBroker.Salvar(unitOfWork, usuario); }
protected override void GuardarUsuarioCache(Usuario usuario) { HttpContext.Current.Items[USUARIO_KEY] = usuario; }