コード例 #1
0
ファイル: RestConnection.cs プロジェクト: eltra-ch/eltra-sdk
        public async Task <bool> Send <T>(UserIdentity identity, T obj)
        {
            bool result = false;

            try
            {
                string path;
                bool   postMethod;

                if (GetPath(obj, out path, out postMethod))
                {
                    if (postMethod)
                    {
                        var requestResult = await Transporter.Post(identity, Url, path, JsonSerializer.Serialize(obj));

                        if (requestResult.StatusCode == HttpStatusCode.OK)
                        {
                            result = true;

                            OnMessageSent();
                        }
                        else
                        {
                            OnErrorOccured(requestResult?.StatusCode);
                        }
                    }
                    else
                    {
                        var response = await Transporter.Put(identity, Url, path, JsonSerializer.Serialize(obj));

                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            var json = response.Content;

                            if (!string.IsNullOrEmpty(json))
                            {
                                var requestResult = json.TryDeserializeObject <RequestResult>();

                                result = requestResult.Result;
                            }
                        }
                        else
                        {
                            OnErrorOccured(response?.StatusCode);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                MsgLogger.Exception($"{GetType().Name} - Send", e);
            }

            return(result);
        }
コード例 #2
0
        public async Task <bool> SignIn(UserIdentity identity)
        {
            bool result = false;

            try
            {
                if (identity != null)
                {
                    _identity = identity;

                    var path = "api/user/sign-in";

                    if (string.IsNullOrEmpty(identity.Role))
                    {
                        identity.Role = string.Empty;
                    }

                    var json = identity.ToJson();

                    var response = await Transporter.Post(identity, Url, path, json);

                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        MsgLogger.WriteDebug($"{GetType().Name} - SignIn", $"Sign-in for user {identity.Login} successful!");
                        result = true;
                    }
                    else
                    {
                        MsgLogger.WriteError($"{GetType().Name} - SignIn", $"Sign-in for user {identity.Login} failed! status code = {response.StatusCode}");
                    }
                }
            }
            catch (Exception e)
            {
                MsgLogger.Exception($"{GetType().Name} - SignIn", e);
            }

            return(result);
        }
コード例 #3
0
        public async Task <bool> Upload(DeviceDescriptionPayload deviceDescription)
        {
            bool result = false;

            try
            {
                MsgLogger.WriteLine($"upload device description version='{deviceDescription.Version}'");

                var postResult = await Transporter.Post(_identity, Url, "api/description/upload", deviceDescription.ToJson());

                if (postResult.StatusCode == HttpStatusCode.OK)
                {
                    result = true;
                }
            }
            catch (Exception e)
            {
                MsgLogger.Exception($"{GetType().Name} - Upload", e);
            }

            return(result);
        }
コード例 #4
0
        internal async Task <bool> UploadPayload(DeviceToolPayload payload)
        {
            bool result = false;

            try
            {
                MsgLogger.WriteLine($"upload payload version='{payload.FileName}'");

                var postResult = await Transporter.Post(_identity, Url, "api/description/payload-upload", payload.ToJson());

                if (postResult.StatusCode == HttpStatusCode.OK)
                {
                    result = true;
                }
            }
            catch (Exception e)
            {
                MsgLogger.Exception($"{GetType().Name} - Upload", e);
            }

            return(result);
        }
コード例 #5
0
        internal async Task <bool> CreateAlias(UserIdentity identity)
        {
            bool result = false;

            try
            {
                var path = "api/user/create-alias";

                var json = identity.ToJson();

                var response = await Transporter.Post(_identity, Url, path, json);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    result = true;
                }
            }
            catch (Exception e)
            {
                MsgLogger.Exception($"{GetType().Name} - CreateAlias", e);
            }

            return(result);
        }
コード例 #6
0
        public async Task <bool> SignUp(UserIdentity identity)
        {
            bool result = false;

            try
            {
                var path = "api/user/sign-up";

                var json = identity.ToJson();

                var response = await Transporter.Post(identity, Url, path, json);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    result = true;
                }
            }
            catch (Exception e)
            {
                MsgLogger.Exception($"{GetType().Name} - SignUp", e);
            }

            return(result);
        }