private async Task <bool> DownloadTool(string payloadId, string hashCode, DeviceToolPayloadMode mode)
        {
            bool result = false;

            try
            {
                var fileFullPath = GetPluginFilePath(GetPluginFileName(payloadId));

                var transport = new CloudTransporter();

                var query = HttpUtility.ParseQueryString(string.Empty);

                query["uniqueId"] = payloadId;
                query["hashCode"] = hashCode;
                query["mode"]     = $"{(int)mode}";

                var url = UrlHelper.BuildUrl(Url, "api/description/payload-download", query);

                var json = await transport.Get(url);

                if (!string.IsNullOrEmpty(json))
                {
                    var payload = JsonConvert.DeserializeObject <DeviceToolPayload>(json);

                    if (payload != null)
                    {
                        var base64EncodedBytes = Convert.FromBase64String(payload.Content);

                        File.WriteAllBytes(fileFullPath, base64EncodedBytes);

                        /*if (FileHelper.ChangeFileNameExtension(fileFullPath, "md5", out string md5FullPath))
                         * {
                         *  File.WriteAllText(md5FullPath, hashCode);
                         *
                         *  result = true;
                         * }
                         *
                         * if (FileHelper.ChangeFileNameExtension(fileFullPath, "id", out string idFullPath))
                         * {
                         *  File.WriteAllText(idFullPath, payloadId);
                         *
                         *  result = true;
                         * }*/

                        result = true;
                    }
                }
            }
            catch (Exception e)
            {
                MsgLogger.Exception($"{GetType().Name} - DownloadTool", e);
            }

            return(result);
        }
Exemple #2
0
        private async Task <bool> DownloadTool(UserIdentity identity, string payloadId, string hashCode, DeviceToolPayloadMode mode)
        {
            bool result = false;

            if (identity == null)
            {
                throw new Exception("Identity not defined!");
            }

            try
            {
                var assemblyPath = GetPluginFilePath(GetPluginFileName(Guid.NewGuid().ToString()));

                var query = HttpUtility.ParseQueryString(string.Empty);

                query["uniqueId"] = payloadId;
                query["hashCode"] = hashCode;
                query["mode"]     = $"{(int)mode}";

                var url = UrlHelper.BuildUrl(CloudAdapter.Url, "api/description/payload-download", query);

                var json = await CloudAdapter.Get(identity, url);

                if (!string.IsNullOrEmpty(json))
                {
                    var payload = json.TryDeserializeObject <DeviceToolPayload>();

                    if (payload != null)
                    {
                        var base64EncodedBytes = Convert.FromBase64String(payload.Content);

                        File.WriteAllBytes(assemblyPath, base64EncodedBytes);

                        PluginStore.Add(payloadId, assemblyPath);

                        PluginStore.Serialize();

                        result = true;
                    }
                }
            }
            catch (Exception e)
            {
                MsgLogger.Exception($"{GetType().Name} - DownloadTool", e);
            }

            return(result);
        }