/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.uff.ic.oceano.peixeespada.controller.command;
import br.uff.ic.oceano.controller.servlet.command.Command;
import br.uff.ic.oceano.peixeespada.contexto.ContextoAmbiente;
import br.uff.ic.oceano.core.service.ProjectUserService;
import br.uff.ic.oceano.core.service.ProtocolService;
import br.uff.ic.oceano.peixeespada.model.Agent;
import java.text.SimpleDateFormat;
import br.uff.ic.oceano.core.factory.ObjectFactory;
import br.uff.ic.oceano.core.model.OceanoUser;
import br.uff.ic.oceano.core.model.ProjectUser;
import br.uff.ic.oceano.core.model.SoftwareProject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.codehaus.jettison.json.JSONWriter;
/**
*
* @author Heliomar
*/
public class CommandNodeScheduling implements Command{
private ProjectUserService projectUserService = ObjectFactory.getObjectWithDataBaseDependencies(ProjectUserService.class);
@Override
public void execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
String strDateInitial = null;
String strDateEnd = null;
Long idOrchestratorAgent = null;
Long idProject = null;
Long idOceanUser = null;
String strStatusAgent = null;
strDateInitial = request.getParameter("dateInitial");
strDateEnd = request.getParameter("dateEnd");
strStatusAgent = request.getParameter("statusAgent");
idOrchestratorAgent = Long.parseLong(request.getParameter("idOrchestratorAgent"));
idOceanUser = Long.parseLong(request.getParameter("idOceanUser"));
idProject = Long.parseLong(request.getParameter("idProject"));
SoftwareProject softwareProject = new SoftwareProject();
softwareProject.setId(idProject);
OceanoUser oceanoUser = new OceanoUser();
oceanoUser.setId(idOceanUser);
ProjectUser projectUser = projectUserService.getByProjectAndOceanoUser(softwareProject, oceanoUser);
Agent agente = new Agent();
agente.setCycles(0);
agente.setSuccessCycles(0);
agente.setName(request.getParameter("adressToString"));
agente.setInitDate(sdf.parse(strDateInitial));
agente.setEndDate(sdf.parse(strDateEnd));
agente.setStatus(strStatusAgent);
ContextoAmbiente.getInstance().registraAgenteTrabalhador(agente, idOrchestratorAgent);
JSONWriter jSONWriter = new JSONWriter(response.getWriter());
jSONWriter.object()
.key("idWorkAgent")
.value(agente.getIdAgent())
.key("idProjectUser")
.value(projectUser.getId())
.key("passwordVCS")
.value(projectUser.getPassword())
.key("usernameVCS")
.value(projectUser.getLogin()).endObject();
response.flushBuffer();
}
}