public static JsonServiceClient CloneAuthenticatedClient(ServiceClientBase client, string baseUri)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            var builder = new UriBuilder(client.BaseUri)
            {
                Path = baseUri
            };

            var clone = new SdkServiceClient(builder.ToString());

            foreach (var headerKey in client.Headers.AllKeys)
            {
                clone.Headers.Remove(headerKey);
                clone.Headers.Add(headerKey, client.Headers[headerKey]);
            }

            clone.Timeout                  = client.Timeout;
            clone.ReadWriteTimeout         = client.ReadWriteTimeout;
            clone.OnAuthenticationRequired = client.OnAuthenticationRequired;
            clone.RequestFilter            = client.RequestFilter;
            clone.ResponseFilter           = client.ResponseFilter;

            return(clone);
        }
Пример #2
0
        public RestServiceResponse QueryBriefCheckpoints()
        {
            var response = new ServiceClientBase("get-checkpoint-list").Call <RestServiceResponse <DeviceCheckpoint[]> >(new RestServiceRequest()
            {
                KeyValues = new KeyValuePair[]
                {
                    //new KeyValuePair("DeviceNumber", "102815"),
                },
                Paging = new Paging()
                {
                    PageNumber = 1, PageSize = 10
                },
                ActionName = "Brief",
            });

            if (!response.HasError)
            {
                foreach (var deviceCheckpoint in response.Body)
                {
                    Console.WriteLine("checkpoint: " + deviceCheckpoint.Description);
                }

                Console.WriteLine("current: " + response.Paging.PageNumber + ";" + "total: " + response.Paging.TotalPages);
            }

            return(response);
        }
Пример #3
0
        public RestServiceResponse QueryDevicesByConditions()
        {
            var response = new ServiceClientBase("get-device-info-list").Call <RestServiceResponse <DeviceInfo[]> >(new RestServiceRequest()
            {
                //KeyValues = new KeyValuePair[]
                //{
                //    new KeyValuePair("DeviceNumber", "102815"),
                //},
                Paging = new Paging()
                {
                    PageNumber = 1, PageSize = 10
                },
                ActionName = "ByConditions",
            });

            if (!response.HasError)
            {
                foreach (var deviceInfo in response.Body)
                {
                    Console.WriteLine("Device Number: " + deviceInfo.DeviceNumber);
                }

                Console.WriteLine("current: " + response.Paging.PageNumber + ";" + "total: " + response.Paging.TotalPages);
            }

            return(response);
        }
Пример #4
0
        public RestServiceResponse AddMaintenanceRecord()
        {
            var response = new ServiceClientBase("operate-maintenance-record").Call <RestServiceResponse <MaintenanceRecord> >(new RestServiceRequest <MaintenanceRecord>()
            {
                Body = new MaintenanceRecord()
                {
                    DeviceInfo = new DeviceInfo()
                    {
                        DeviceNumber = DeviceNumber
                    },
                    Content         = "maintenance content",
                    Status          = MaintenanceRecordStatus.Pending,
                    MaintenancePlan = new MaintenancePlan()
                    {
                        Id = MaintenancePlanId
                    },
                },
                ActionName = "Add"
            });

            if (!response.HasError)
            {
                MaintenanceRecordId = response.Body.Id;
            }

            return(response);
        }
Пример #5
0
        public RestServiceResponse AddInspectionRecord()
        {
            var response = new ServiceClientBase("operate-inspection-record").Call <RestServiceResponse <InspectionRecord> >(new RestServiceRequest <InspectionRecord>()
            {
                Body = new InspectionRecord()
                {
                    DeviceInfo = new DeviceInfo()
                    {
                        DeviceNumber = DeviceNumber
                    },
                    Content        = "inspection content",
                    Status         = InspectionRecordStatus.Pending,
                    InspectionPlan = new InspectionPlan()
                    {
                        Id = InspectionPlanId
                    },
                },
                ActionName = "Add"
            });

            if (!response.HasError)
            {
                InspectionRecordId = response.Body.Id;
            }

            return(response);
        }
        public static void SetAuthenticationToken(ServiceClientBase client, string authenticationToken)
        {
            client.Headers.Remove(AuthenticationHeaders.AuthenticationHeaderNameKey);
            client.Headers.Add(AuthenticationHeaders.AuthenticationHeaderNameKey, authenticationToken);

            ExpireExistingAuthenticationCookie(client);
        }
Пример #7
0
        private void ReAuthenticate(ServiceClientBase client)
        {
            var expiredToken = Connection.SessionToken;

            Connection.ReAuthenticate();

            Log.Info($"Re-authenticated with {client.BaseUri} (v{ServerVersion}). Replaced expiredToken={expiredToken} with newToken={Connection.SessionToken}");
        }
Пример #8
0
        public IdentityServerAuthFeature(IAppSettings appSettings = null, ServiceClientBase defaultServiceClient = null)
        {
            this.appSettings          = appSettings ?? new AppSettings();
            this.defaultServiceClient = defaultServiceClient;

            this.providerType      = IdentityServerAuthProviderType.UserAuthProvider;
            this.AuthorizationFlow = IdentityServerOpenIdAuthorizationFlowType.Hybrid;
        }
Пример #9
0
        public static Task <TResponse> PostAsync <TResponse>(this ServiceClientBase client, IReturn <TResponse> request)
        {
            var tcs = new TaskCompletionSource <TResponse>();

            client.PostAsync <TResponse>(request,
                                         tcs.SetResult,
                                         (result, error) => tcs.SetException(FixWebServiceException(error)));

            return(tcs.Task);
        }
        private static void ClearAuthenticationToken(ServiceClientBase client)
        {
            if (client == null)
            {
                return;
            }

            client.Headers.Remove(AuthenticationHeaders.AuthenticationHeaderNameKey);
            client.ClearCookies();
        }
Пример #11
0
        public static Task <TResponse> GetAsync <TResponse>(this ServiceClientBase client, string relativeOrAbsoluteUrl)
        {
            var tcs = new TaskCompletionSource <TResponse>();

            client.GetAsync <TResponse>(relativeOrAbsoluteUrl,
                                        tcs.SetResult,
                                        (result, error) => tcs.SetException(FixWebServiceException(error)));

            return(tcs.Task);
        }
Пример #12
0
        public static Task <TResponse> PutAsync <TResponse>(this ServiceClientBase client, string relativeOrAbsoluteUrl, object request, ILogger logger = null)
        {
            var tcs = new TaskCompletionSource <TResponse>();

            client.PutAsync <TResponse>(relativeOrAbsoluteUrl,
                                        request,
                                        tcs.SetResult,
                                        (result, error) => tcs.SetException(FixWebServiceException(error)));

            return(tcs.Task);
        }
Пример #13
0
        public RestServiceResponse DeleteRepairRecord()
        {
            var response = new ServiceClientBase("operate-repair-record").Call <RestServiceResponse <DeviceRepairRecord> >(new RestServiceRequest <DeviceRepairRecord>()
            {
                Body = new DeviceRepairRecord()
                {
                    Id = RepairRecordId,
                },
                ActionName = "Delete",
            });

            return(response);
        }
Пример #14
0
        public RestServiceResponse DeleteCheckpoint()
        {
            var response = new ServiceClientBase("operate-checkpoint").Call <RestServiceResponse <DeviceCheckpoint> >(new RestServiceRequest <DeviceCheckpoint>()
            {
                Body = new DeviceCheckpoint()
                {
                    Id = DeviceCheckpointId,
                },
                ActionName = "Delete",
            });

            return(response);
        }
Пример #15
0
        public RestServiceResponse DeleteDevice()
        {
            var response = new ServiceClientBase("operate-device-info").Call <RestServiceResponse <DeviceInfo> >(new RestServiceRequest <DeviceInfo>()
            {
                Body = new DeviceInfo()
                {
                    DeviceNumber = DeviceNumber,
                },
                ActionName = "Delete",
            });

            return(response);
        }
        private void Button1Click(object sender, EventArgs e)

        {
            this._client =

                new ProtoBufServiceClient(Url);

            var response = _client.Send <HelloResponse>("GET", "/hello", new Hello {
                Name = "ProtoBuf"
            });

            label1.Text = response.Result;
        }
Пример #17
0
        public RestServiceResponse DeleteInspectionPlan()
        {
            var response = new ServiceClientBase("operate-inspection-plan").Call <RestServiceResponse <InspectionPlan> >(new RestServiceRequest <InspectionPlan>()
            {
                Body = new InspectionPlan()
                {
                    Id = InspectionPlanId,
                },
                ActionName = "Delete",
            });

            return(response);
        }
Пример #18
0
        public RestServiceResponse DeleteMaintenancePlan()
        {
            var response = new ServiceClientBase("operate-maintenance-plan").Call <RestServiceResponse <MaintenancePlan> >(new RestServiceRequest <MaintenancePlan>()
            {
                Body = new MaintenancePlan()
                {
                    Id = MaintenancePlanId,
                },
                ActionName = "Delete",
            });

            return(response);
        }
Пример #19
0
        public override void SetCookieContainer(HttpWebRequest webRequest, ServiceClientBase client)
        {
            if (!client.EmulateHttpViaPost)
            {
                if (client.ShareCookiesWithBrowser)
                {
                    if (client.CookieContainer == null)
                        client.CookieContainer = new CookieContainer();
                    client.CookieContainer.SetCookies(webRequest.RequestUri, System.Windows.Browser.HtmlPage.Document.Cookies);
                }
            }

            //webRequest.CookieContainer = client.CookieContainer;
        }
Пример #20
0
        public RestServiceResponse EditCheckpoint()
        {
            var response = new ServiceClientBase("operate-checkpoint").Call <RestServiceResponse <DeviceCheckpoint> >(new RestServiceRequest <DeviceCheckpoint>()
            {
                Body = new DeviceCheckpoint()
                {
                    Id          = DeviceCheckpointId,
                    Description = "this is a edited checkpoint description.",
                    Remark      = "pls check it.",
                },
                ActionName = "Edit",
            });

            return(response);
        }
        private static void ExpireExistingAuthenticationCookie(ServiceClientBase client)
        {
            if (client.BaseUri == null)
            {
                return;
            }

            var existingAuthCookie = client.CookieContainer.GetCookies(new Uri(client.BaseUri))[AuthenticationHeaders.AuthenticationCookieName];

            if (existingAuthCookie == null)
            {
                return;
            }

            existingAuthCookie.Expired = true;
        }
Пример #22
0
        public RestServiceResponse EditDevice()
        {
            var response = new ServiceClientBase("operate-device-info").Call <RestServiceResponse <DeviceInfo> >(new RestServiceRequest <DeviceInfo>()
            {
                Body = new DeviceInfo()
                {
                    DeviceNumber      = DeviceNumber,
                    DeviceName        = "edited device name",
                    DateOfManufacture = "2016-07-06",
                    Category          = "last edited by me",
                },
                ActionName = "Edit",
            });

            return(response);
        }
Пример #23
0
        public RestServiceResponse EditMaintenanceRecord()
        {
            var response = new ServiceClientBase("operate-maintenance-record").Call <RestServiceResponse <MaintenanceRecord> >(new RestServiceRequest <MaintenanceRecord>()
            {
                Body = new MaintenanceRecord()
                {
                    Id           = MaintenanceRecordId,
                    Status       = MaintenanceRecordStatus.Done,
                    Persons      = "bufferfly",
                    ScheduleTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    Remark       = "good job.",
                },
                ActionName = "Edit",
            });

            return(response);
        }
Пример #24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MLServiceProxy" /> class.
 /// </summary>
 /// <param name="serviceUrl">The service URL.</param>
 /// <param name="apiKey">The API key.</param>
 /// <exception cref="IncorrectConfigurationException">Required system settings are not set.</exception>
 public MLServiceProxy(string serviceUrl, string apiKey)
 {
     CheckRequiredSetting("MLProblemType.ServiceUrl", serviceUrl);
     CheckRequiredSetting(CloudServicesApiKey, apiKey);
     ClassifyTimeoutSec = 5;
     _apiKey            = apiKey;
     if (ClassFactory.TryGet("MLServiceClient", out _serviceClient))
     {
         _serviceClient.BaseUri = serviceUrl;
     }
     else
     {
         _serviceClient = new JsonServiceClient(serviceUrl);
     }
     _serviceClient.LocalHttpWebRequestFilter = request => {
         request.Headers.Add("ApiKey", apiKey);
     };
 }
        public override void OnPageLoading(Uri url)
        {
            bool uriTestResult = OnSuccessPredicate != null
                ? OnSuccessPredicate(url)
                : url.Fragment.Contains("s=1") || url.Query.Contains("s=1");

            jsonServiceClient = ServiceClientFactory == null ? new JsonServiceClient(serviceStackBaseUrl) : ServiceClientFactory(serviceStackBaseUrl);

            if (authUrl.Host == url.Host && uriTestResult)
            {
                var cookie = Android.Webkit.CookieManager.Instance.GetCookie(url.AbsoluteUri);
                jsonServiceClient.CookieContainer = jsonServiceClient.CookieContainer ?? new CookieContainer();
                jsonServiceClient.CookieContainer.SetCookies(new Uri(url.AbsoluteUri), cookie);
                
                account = getCustomUserDetails(jsonServiceClient);
                OnSucceeded(account);
            }
            base.OnPageLoading(url);
        }
Пример #26
0
        public RestServiceResponse EditInspectionRecord()
        {
            var response = new ServiceClientBase("operate-inspection-record").Call <RestServiceResponse <InspectionRecord> >(new RestServiceRequest <InspectionRecord>()
            {
                Body = new InspectionRecord()
                {
                    Id                = InspectionRecordId,
                    Status            = InspectionRecordStatus.Done,
                    Persons           = "bufferfly",
                    ScheduleTime      = DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd HH:mm:ss"),
                    MaintainBeginTime = DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd HH:mm:ss"),
                    MaintainEndTime   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    Remark            = "good job.",
                },
                ActionName = "Edit",
            });

            return(response);
        }
Пример #27
0
        public override void OnPageLoading(Uri url)
        {
            bool uriTestResult = OnSuccessPredicate != null
                ? OnSuccessPredicate(url)
                : url.Fragment.Contains("s=1") || url.Query.Contains("s=1");

            jsonServiceClient = ServiceClientFactory == null ? new JsonServiceClient(serviceStackBaseUrl) : ServiceClientFactory(serviceStackBaseUrl);

            if (authUrl.Host == url.Host && uriTestResult)
            {
                var cookie = Android.Webkit.CookieManager.Instance.GetCookie(url.AbsoluteUri);
                jsonServiceClient.CookieContainer = jsonServiceClient.CookieContainer ?? new CookieContainer();
                jsonServiceClient.CookieContainer.SetCookies(new Uri(url.AbsoluteUri), cookie);

                account = getCustomUserDetails(jsonServiceClient);
                OnSucceeded(account);
            }
            base.OnPageLoading(url);
        }
Пример #28
0
        public RestServiceResponse EditInpsectionPlan()
        {
            var response = new ServiceClientBase("operate-inspection-plan").Call <RestServiceResponse <InspectionPlan> >(new RestServiceRequest <InspectionPlan>()
            {
                Body = new InspectionPlan()
                {
                    Id         = InspectionPlanId,
                    DeviceInfo = new DeviceInfo()
                    {
                        DeviceNumber = DeviceNumber
                    },
                    ScheduleType  = InspectionPlanScheduleType.Yearly,
                    ScheduleValue = "03-10",
                    Content       = "aaaa",
                },
                ActionName = "Edit",
            });

            return(response);
        }
Пример #29
0
        public RestServiceResponse EditMaintenancePlan()
        {
            var response = new ServiceClientBase("operate-maintenance-plan").Call <RestServiceResponse <MaintenancePlan> >(new RestServiceRequest <MaintenancePlan>()
            {
                Body = new MaintenancePlan()
                {
                    Id         = MaintenancePlanId,
                    DeviceInfo = new DeviceInfo()
                    {
                        DeviceNumber = DeviceNumber
                    },
                    ScheduleType  = MaintenancePlanScheduleType.Monthly,
                    ScheduleValue = "20",
                    Content       = "aaaa",
                },
                ActionName = "Edit",
            });

            return(response);
        }
Пример #30
0
        public RestServiceResponse EditRepairRecord()
        {
            var response = new ServiceClientBase("operate-repair-record").Call <RestServiceResponse <DeviceRepairRecord> >(new RestServiceRequest <DeviceRepairRecord>()
            {
                Body = new DeviceRepairRecord()
                {
                    Id              = RepairRecordId,
                    FaultTime       = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    Description     = "something is wrong.",
                    Status          = DeviceRepairRecordStatus.Done,
                    RepairBeginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    Content         = "fix some parts.",
                    Persons         = "bufferfly",
                    Remark          = "good job.",
                },
                ActionName = "Edit",
            });

            return(response);
        }
Пример #31
0
        public static JsonServiceClient CloneAuthenticatedClient(ServiceClientBase client, string baseUri)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            var builder = new UriBuilder(client.BaseUri);

            builder.Path = baseUri;

            var clone = new SdkServiceClient(builder.ToString());

            foreach (var headerKey in client.Headers.AllKeys)
            {
                clone.Headers.Remove(headerKey);
                clone.Headers.Add(headerKey, client.Headers[headerKey]);
            }

            return(clone);
        }
Пример #32
0
        public RestServiceResponse AddDevice()
        {
            var response = new ServiceClientBase("operate-device-info").Call <RestServiceResponse <DeviceInfo> >(new RestServiceRequest <DeviceInfo>()
            {
                Body = new DeviceInfo()
                {
                    DeviceNumber      = DeviceNumber,
                    DeviceName        = "hey",
                    DateOfManufacture = "2016-08-06",
                    Category          = "cccccc",
                },
                ActionName = "Add",
            });

            if (!response.HasError)
            {
                Console.WriteLine("Device Number: " + response.Body.DeviceNumber);
            }

            return(response);
        }
 private static void SendRequestExpectArgumentException(ITaskRequest request, ServiceClientBase service, string httpMethod, string wrongArgument)
 {
     try
     {
         using (service)
         {
             service.HttpMethod = httpMethod;
             service.Send<TaskResponse>(request);
             Assert.Fail("No Exception occured.");
         }
     }
     catch (WebServiceException ex)
     {
         Assert.That(ex.StatusCode, Is.EqualTo((int)HttpStatusCode.BadRequest));
         Assert.That(ex.ErrorCode, Is.EqualTo("ArgumentException"));
         Assert.That(ex.ErrorMessage, Is.StringContaining(wrongArgument));
     }
 }