Controller

En PersonaController.java

En el método save()

  persona=      personaRepository.addUserInfoForSaveMethod(persona, "myusername", "create");

En el método edit()

 persona = personaRepository.addUserInfoForEditMethod(persona, "myusarname", "update");

Ejecutar el proyecto

Creamos un documento y realizamos ediciones sobre el, si consultamos el documento podemos ver las acciones realizadas por los usuarios en el mismo.

PersonaController.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.practica.controller;

import com.avbravo.jmoordb.configuration.JmoordbContext;
import com.avbravo.jmoordb.mongodb.history.repository.RevisionHistoryRepository;
import com.avbravo.jmoordb.services.RevisionHistoryServices;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.practicaejb.entity.Persona;
import com.avbravo.practicaejb.repository.PersonaRepository;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;

/**
 *
 * @author avbravo
 */
@Named
@ViewScoped
public class PersonaController implements Serializable {

    private static final long serialVersionUID = 1L;
    Persona persona = new Persona();
    @Inject
    PersonaRepository personaRepository;
    @Inject
    RevisionHistoryRepository repositoryRevisionHistory;
    @Inject
    RevisionHistoryServices revisionHistoryServices;
    
    


    List<Persona> personaList = new ArrayList<>();

    public List<Persona> getPersonaList() {
//        return personaList;
        return personaRepository.findAll();
    }

    public void setPersonaList(List<Persona> personaList) {
        this.personaList = personaList;
    }

    public Persona getPersona() {
        return persona;
    }

    public void setPersona(Persona persona) {
        this.persona = persona;
    }

    @PostConstruct
    public void init() {
        repositoryRevisionHistory.setDatabase("practica_history");
        if(JmoordbContext.get("action")!= null){
            String action = (String)JmoordbContext.get("action");
            if(action.equals("view")){
                persona = (Persona)JmoordbContext.get("persona");
            }
        }
   //Usuario jmoordb_user = (Usuario) JmoordbContext.get("jmoordb_user");
//       
//              JmoordbConnection  jmc = new JmoordbConnection.Builder()
//                    .withSecurity(false)                  
//                    .withDatabase("practica")
//                    .withHost("")
//                    .withPort(0)
//                    .withUsername("")
//                    .withPassword("")
//                    .build();
    }

    public String save() {
        try {
            persona.setCedula(persona.getCedula().toLowerCase());
            Optional<Persona> optional = personaRepository.findById(persona);

            if (optional.isPresent()) {
                JsfUtil.warningMessage("Existe una persona con esa cedula");
                return null;
            }
   persona=      personaRepository.addUserInfoForSaveMethod(persona, "myusername", "create");
            //  persona.setUserInfo(personaRepository.generateListUserinfo("myusername", "create"));
            if (personaRepository.save(persona, false)) {
                JsfUtil.successMessage("Guardado");
                repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
                        "myusername",
                        "create", "persona", personaRepository.toDocument(persona).toString()));
                persona = new Persona();

            } else {
                JsfUtil.errorDialog("no se guardo()", personaRepository.getException().toString());
            }
        } catch (Exception e) {
            JsfUtil.errorDialog("save()", e.getLocalizedMessage());
        }

        return "";
    }

    public String delete(Object item, Boolean deleteonviewpage) {
        String path = "";
        try {
            persona = (Persona) item;

            if (personaRepository.delete("cedula", persona.getCedula())) {

                repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
                        "myusername",
                        "delete", "persona", personaRepository.toDocument(persona).toString()));
                JsfUtil.successMessage("Se elimino la persona");

                if (!deleteonviewpage) {
                    personaList.remove(persona);

                } else {
                    persona = new Persona();

                }

            }

        } catch (Exception e) {
            JsfUtil.errorDialog("delete()", e.getLocalizedMessage());
        }

        return "";
    }// </editor-fold>

    public String edit() {
        try {

            repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
                    "myusername",
                    "update", "persona", personaRepository.toDocument(persona).toString()));

 
            persona = personaRepository.addUserInfoForEditMethod(persona, "myusarname", "update");
            personaRepository.update(persona);
              JsfUtil.successMessage("Se actualizo el documento");
        } catch (Exception e) {
            JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
    
    public String prepare(Persona persona){
        try{
              JmoordbContext.put("persona", persona);
        JmoordbContext.put("action", "view");
       
        } catch (Exception e) {
            JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
        }
        return "view";
      
    }
}

Last updated

Was this helpful?