Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }