static public Message Dispatch(Message message) { // can't authenticate user if he is creating an account / login if (message.operationName != "serviceRegister" && message.operationName != "serviceLogin" && message.operationName != "serviceJEEResponse") { var authorisationStatus = BusinessAccessLayer.CheckAuthorisation(message); if (!authorisationStatus.Item1) { logger.Info("Denied service access : " + authorisationStatus.Item2); return(new Message { info = "You don't have access to this service : " + authorisationStatus.Item2, operationStatus = false }); } } IWorkflowOrchestrator workflowOrchestrator; switch (message.operationName) { case "serviceRegister": workflowOrchestrator = new WORegister(); break; case "serviceLogin": workflowOrchestrator = new WOLogin(); break; case "serviceLogout": workflowOrchestrator = new WOLogout(); break; case "serviceDecrypt": workflowOrchestrator = new WODecrypt(); break; case "serviceJEEResponse": workflowOrchestrator = new WOJEEResponse(); break; default: logger.Error("Workflow orchestrator not found : \"" + message.operationName + "\""); throw new Exception("WorkflowOrchestrator \"" + message.operationName + "\" does not exists"); } logger.Info("Authorized service access to user : \"" + message.data[0] + "\", requested service service : \"" + message.operationName + "\""); return(workflowOrchestrator.Execute(message)); }
/* * Input Data Layout : * - data[0] : documentName (string) * - data[1] : key (string) * - data[2] : guuid (string) * - data[3] : secret (string) * - data[4] : confidence (float) * * Output Data Layout : */ public Message ExecuteService(Message message) { return(BusinessAccessLayer.Dispatch(message)); }