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); }
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); }