Exemplo n.º 1
0
        public ObservableCollection <ServiceInstance> FindServices(string coverageAreaType, string coverageArea, string unloCode, List <string> serviceProviderIds, string serviceDesignId,
                                                                   string serviceInstanceId, string mmsi, string imo, string serviceType, string serviceStatus, List <string> keyWords, string freeText, long?page, long?pageSize)
        {
            var result = new ObservableCollection <ServiceInstance>();

            var url = _visUrl + string.Format("/findServices");

            var area   = new FindServicesRequestObjFilterCoverageArea(coverageAreaType, coverageArea);
            var filter = new FindServicesRequestObjFilter(area, unloCode, serviceProviderIds, serviceDesignId, serviceInstanceId,
                                                          mmsi, imo, serviceType, serviceStatus, keyWords, freeText);
            var request = new FindServicesRequestObj(filter, page, pageSize);

            WebHeaderCollection headers = new WebHeaderCollection();

            headers.Add(HttpRequestHeader.ContentType, "application / json; charset = UTF8");

            var response = WebRequestHelper.Post(url, request.ToJson(), headers);

            try
            {
                var responseObj = JsonConvert.DeserializeObject <FindServicesResponseObj>(response.Body);
                if (responseObj != null)
                {
                    if (response.HttpStatusCode == HttpStatusCode.OK)
                    {
                        if (responseObj.StatusCode != 200)
                        {
                            MessageBox.Show(string.Format("The find service request returned status code {0}, {1}", responseObj.StatusCode, responseObj.StatusMessage));
                        }
                        try
                        {
                            if (responseObj.ServicesInstances != null)
                            {
                                foreach (var service in responseObj.ServicesInstances)
                                {
                                    result.Add(service);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(responseObj.ServicesInstances.ToArray().ToString(), ex);
                        }
                    }
                }
                else
                {
                    MessageBox.Show(string.Format("The find service request returned status code {0}, {1}", response.HttpStatusCode, response.Body));
                }
                return(result);
            }
            catch (Exception ex)
            {
                string errMessage = string.Format("Failed to get valid response from Service Registry. The reponse body does not validate towards the underlying schema: {0}", ex.Message);
                var    err        = new Exception(errMessage);
                throw err;
            }
        }
        public ObservableCollection <ServiceInstance> FindServices(string coverageAreaType, string coverageArea, string unloCode, List <string> serviceProviderIds, string serviceDesignId,
                                                                   string serviceInstanceId, string mmsi, string imo, string serviceType, string serviceStatus, List <string> keyWords, string freeText, long?page, long?pageSize)
        {
            var result = new ObservableCollection <ServiceInstance>();

            var url = _spisUrl + string.Format("/findServices");

            var area   = new FindServicesRequestObjFilterCoverageArea(coverageAreaType, coverageArea);
            var filter = new FindServicesRequestObjFilter(area, unloCode, serviceProviderIds, serviceDesignId, serviceInstanceId,
                                                          mmsi, imo, serviceType, serviceStatus, keyWords, freeText);
            var request = new FindServicesRequestObj(filter, page, pageSize);

            WebHeaderCollection headers = new WebHeaderCollection();

            headers.Add(HttpRequestHeader.ContentType, "application/json; charset=utf-8");

            var response = WebRequestHelper.Post(url, request.ToJson(), headers);

            var responseObj = JsonConvert.DeserializeObject <FindServicesResponseObj>(response.Body);

            if (response.HttpStatusCode == HttpStatusCode.OK)
            {
                try
                {
                    foreach (var service in responseObj.ServicesInstances)
                    {
                        result.Add(service);
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(responseObj.ServicesInstances.ToArray().ToString(), ex);
                }
            }
            return(result);
        }