コード例 #1
0
        public static async Task <object> FormLoadComplete(string formSessionInfoId)
        {
            Uri uri = await RestConstants.GetUriAsync(SERVICE_URL, "FormLoadComplete");

            FormServiceRequestBody requestBody = new FormServiceRequestBody
            {
                UserContext       = await AuthService.Instance.GetUserContextAsync(),
                FormSessionInfoId = formSessionInfoId
            };

            try
            {
                HttpClient httpClient = new HttpClient();
                var        response   = await httpClient.PostAsync(uri, RestConstants.SerializeBody(requestBody));

                if (response.IsSuccessStatusCode)
                {
                    var responseBody = await response.Content.ReadAsStringAsync();

                    var resultWrapper = JsonConvert.DeserializeObject <FormLoadCompleteResponse>(responseBody);
                    return(resultWrapper.FormLoadCompleteResult);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(@"             ERROR {0}", ex.Message);
            }
            return(null);
        }
コード例 #2
0
        // TODO dry these methods up with a good generic...

        public static async Task <StandAloneFormSessionInfo> GetFormSessionSurfaceJson(FlowExecutionStateInstruction instruction, bool useNamedSession = false)
        {
            Uri uri = await RestConstants.GetUriAsync(SERVICE_URL, "GetFormSessionSurfaceJson");

            try
            {
                FormServiceRequestBody requestBody = new FormServiceRequestBody
                {
                    UserContext       = useNamedSession ? new UserContext(RestConstants.NamedSessionId) : await AuthService.Instance.GetUserContextAsync(),
                    FormSessionInfoId = instruction.FormSessionId
                };

                var        serializedBody = RestConstants.SerializeBody(requestBody);
                HttpClient httpClient     = new HttpClient();
                var        response       = await httpClient.PostAsync(uri, serializedBody);

                if (response.IsSuccessStatusCode)
                {
                    var responseBody = await response.Content.ReadAsStringAsync();

                    var resultWrapper = JsonConvert.DeserializeObject <GetFormSessionSurfaceJsonResponse>(responseBody);
                    // we need $type field to specify component type in form data
                    // NewtonJson can't deserialize field which starts with '$', so we needed to replace it to get correct deserialization.
                    resultWrapper.GetFormSessionSurfaceJsonResult = resultWrapper.GetFormSessionSurfaceJsonResult.Replace("$type", "__type");
                    StandAloneFormSessionInfo info = JsonConvert.DeserializeObject <StandAloneFormSessionInfo>(
                        resultWrapper.GetFormSessionSurfaceJsonResult);

                    return(info);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(@"             ERROR {0}", ex.Message);
            }
            return(null);
        }