public static MapElementRequestAPI CreateMessageElement(String developerName, String groupElementId, Int32 x, Int32 y) { MapElementRequestAPI mapElementRequest = null; // Create the map element request for the input mapElementRequest = new MapElementRequestAPI(); mapElementRequest.developerName = developerName; mapElementRequest.elementType = ManyWhoConstants.MAP_ELEMENT_TYPE_IMPLEMENTATION_MESSAGE; mapElementRequest.groupElementId = groupElementId; mapElementRequest.x = x; mapElementRequest.y = y; mapElementRequest.updateByName = true; mapElementRequest.postUpdateToStream = false; return(mapElementRequest); }
public static MapElementRequestAPI CreateInputElement(String developerName, String pageElementId, String groupElementId, String serviceElementId, ValueElementResponseAPI notificationValueElementResponse, Int32 x, Int32 y) { MapElementRequestAPI mapElementRequest = null; MessageActionAPI messageAction = null; MessageInputAPI messageInput = null; // Create the map element request for the input mapElementRequest = new MapElementRequestAPI(); mapElementRequest.developerName = developerName; mapElementRequest.elementType = ManyWhoConstants.MAP_ELEMENT_TYPE_IMPLEMENTATION_INPUT; mapElementRequest.groupElementId = groupElementId; mapElementRequest.pageElementId = pageElementId; mapElementRequest.x = x; mapElementRequest.y = y; mapElementRequest.updateByName = true; mapElementRequest.postUpdateToStream = true; // Only add the notification if we have the service element id if (serviceElementId != null && serviceElementId.Trim().Length > 0) { mapElementRequest.messageActions = new List <MessageActionAPI>(); // Create the notification message action messageAction = new MessageActionAPI(); messageAction.developerName = "Notify"; messageAction.uriPart = "notify"; messageAction.serviceElementId = serviceElementId; messageAction.inputs = new List <MessageInputAPI>(); // Create the post input messageInput = new MessageInputAPI(); messageInput.developerName = "Post"; messageInput.valueElementToReferenceId = new ValueElementIdAPI(notificationValueElementResponse.id, null, null); // Add the input to the action messageAction.inputs.Add(messageInput); // Add the action to the request mapElementRequest.messageActions.Add(messageAction); } return(mapElementRequest); }
public static void CreateOutcome(String developerName, String label, MapElementRequestAPI mapElementRequest, MapElementResponseAPI nextMapElementResponse) { OutcomeRequestAPI outcomeRequest = null; // Create the new outcome connecting the map element outcomeRequest = new OutcomeRequestAPI(); outcomeRequest.developerName = developerName; outcomeRequest.label = label; outcomeRequest.nextMapElementId = nextMapElementResponse.id; outcomeRequest.pageActionBindingType = ManyWhoConstants.ACTION_BINDING_SAVE; // Map sure we have an outcomes list to user if (mapElementRequest.outcomes == null) { mapElementRequest.outcomes = new List <OutcomeAPI>(); } // Add the outcome to the request mapElementRequest.outcomes.Add(outcomeRequest); }
public MapElementResponseAPI SaveMapElement(INotifier notifier, IAuthenticatedWho authenticatedWho, String manywhoBaseUrl, String editingToken, String flowId, MapElementRequestAPI mapElementRequest) { MapElementResponseAPI mapElementResponse = null; HttpClient httpClient = null; HttpContent httpContent = null; HttpResponseMessage httpResponseMessage = null; String endpointUrl = null; Policy.Handle <ServiceProblemException>().Retry(HttpUtils.MAXIMUM_RETRIES).Execute(() => { using (httpClient = HttpUtils.CreateHttpClient(authenticatedWho, authenticatedWho.ManyWhoTenantId.ToString(), null)) { // Use the JSON formatter to create the content of the request body. httpContent = new StringContent(JsonConvert.SerializeObject(mapElementRequest)); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); // Construct the URL for the save endpointUrl = manywhoBaseUrl + String.Format(MANYWHO_DRAW_URI_PART_MAP_ELEMENT, flowId, editingToken); // Send the map element data to save over to the service httpResponseMessage = httpClient.PostAsync(endpointUrl, httpContent).Result; // Check the status of the response and respond appropriately if (httpResponseMessage.IsSuccessStatusCode) { // Get the map element response back from the save mapElementResponse = JsonConvert.DeserializeObject <MapElementResponseAPI>(httpResponseMessage.Content.ReadAsStringAsync().Result); } else { throw new ServiceProblemException(new ServiceProblem(endpointUrl, httpResponseMessage, string.Empty)); } } }); return(mapElementResponse); }