示例#1
0
        public ClippMessageDetail CloseTab(ClippTabDetailRequest clippTabDetailRequest)
        {
            try
            {
                using (var client = new HttpClient(_httpClientHandler))
                {
                    client.BaseAddress = new Uri(string.Format("http://{0}:{1}/", _baseAddress, _port));
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    var methodAddress = string.Format("{0}/Actions/CloseTab?clippTabRef={1}&amount={2}", ClippAddress,
                                                      Guid.Parse(clippTabDetailRequest.ClippTabRef), clippTabDetailRequest.Amount);

                    if (clippTabDetailRequest.MessageId != "")
                    {
                        methodAddress = methodAddress + string.Format("&clippMessageId={0}", Guid.Parse(clippTabDetailRequest.MessageId));
                    }

                    var serializedClippTabDetail = JsonConvert.SerializeObject(clippTabDetailRequest.TabData, typeof(ClippTabDetail), new JsonSerializerSettings {
                    });
                    HttpContent httpContent      = new StringContent(serializedClippTabDetail, Encoding.UTF8, "application/json");

                    var response = client.PostAsync(methodAddress, httpContent);

                    response.Wait();
                    var result = response.Result;

                    if (result.IsSuccessStatusCode)
                    {
                        var clippMessageTask = result.Content.ReadAsStringAsync();
                        clippMessageTask.Wait();

                        var jsonSerializer = new DataContractJsonSerializer(typeof(ClippMessageDetail));
                        var memoryStream   = new MemoryStream(Encoding.ASCII.GetBytes(clippMessageTask.Result));

                        var clippMessageDetail = (ClippMessageDetail)jsonSerializer.ReadObject(memoryStream);

                        return(clippMessageDetail);
                    }
                }
            }
            catch (Exception exception)
            {
                ServiceLogger.LogException("Exception in CloseTab", exception);
            }
            return(null);
        }
示例#2
0
        public void UpdateTabDetails(ClippTabDetailRequest clippTabDetailRequest)
        {
            try
            {
                using (var client = new HttpClient(_httpClientHandler))
                {
                    client.BaseAddress = new Uri(string.Format("http://{0}:{1}/", _baseAddress, _port));
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    var methodAddress = string.Format("{0}/Actions/SendTabDetails?clippTabRef={1}",
                                                      ClippAddress, Guid.Parse(clippTabDetailRequest.ClippTabRef));

                    if (clippTabDetailRequest.MessageId != "")
                    {
                        methodAddress = methodAddress + string.Format("&clippMessageRef={0}", Guid.Parse(clippTabDetailRequest.MessageId));
                    }

                    var serializedClippTabDetail = JsonConvert.SerializeObject(clippTabDetailRequest.TabData, typeof(ClippTabDetail), new JsonSerializerSettings {
                    });
                    HttpContent httpContent      = new StringContent(serializedClippTabDetail, Encoding.UTF8, "application/json");

                    var response = client.PostAsync(methodAddress, httpContent);

                    response.Wait();
                    var result = response.Result;

                    if (!result.IsSuccessStatusCode)
                    {
                        throw new InvalidOperationException("There was an error executing the operation, please try again later.");
                    }
                }
            }
            catch (Exception exception)
            {
                ServiceLogger.LogException("Exception in UpdateTabDetails", exception);
            }
        }