protected override async Task Run() { (var hash, var length, _) = VerifyFileJson.GenerateHash(file); var verify = await VerifyApp.Current.DownloadVerificationResult(ServiceNode, id); if (verify != null) { try { foreach (var f in verify.Verify.files) { if (f.length == length && f.GetHash() == hash) { SetSuccess(f.hash); return; } } } catch (Exception ex) { Log.HandleException(ex); } SetError("File is not valid"); } else { SetError($"Verification {id} not found"); } }
protected override async Task Run() { var submitAccount = ServiceNode.GetSubmitAccounts <SubmitAccount>().First(); var files = new List <VerifyFileJson>(); for (var i = 0; i < this.files.Length; i++) { var file = this.files[i]; try { using (var stream = File.OpenRead(file)) { var(hash, length) = VerifyFileJson.GenerateHash(stream); var fileJson = new VerifyFileJson { name = Path.GetFileName(file), hashtype = hash.HashType.ToString().ToLower(), hash = Hex.ToString(hash.RawData), length = length, link = GetLink(i) }; files.Add(fileJson); } } catch (Exception ex) { Log.IgnoreException(ex); return; } } var verifyJson = new VerifyJson { description = description, link = link, files = files }; var result = await VerifyApp.Current.UploadVerification(submitAccount, verifyJson); if (result.TransactionResult == TransactionResultTypes.Ok) { SetSuccess(VerifyApp.Current.GetRequestCode(ServiceNode, VerifyServiceInfo.ChainIndex, ViewVerificationSchemeAction.ActionName, result.Transaction.OperationId)); } else { SetError(result.GetErrorMessage()); } }
async Task VerifyFile(ButtonRow button) { var verify = button.Tag as VerifyJson; using (var file = await UIApp.OpenFilePicker2(null)) { if (file.Valid) { IsBusy = true; Toast(".VerificationFilePage.Wait"); var valid = await Task.Run(() => { try { (var hash, var length) = VerifyFileJson.GenerateHash(file.Stream); if (hash != null) { foreach (var f in verify.files) { var filehash = f.GetHash(); if (hash == filehash && f.length == file.Stream.Length) { return(true); } } } } catch (Exception ex) { Log.IgnoreException(ex); } return(false); }); IsBusy = false; await MessageAsync(valid? "Success" : "Failure"); } } }
async Task HashFile(OpenFile file) { IsBusy = true; Toast("Wait"); _fileHash = null; _fileName = null; _length = 0; await Task.Run(() => { try { (var hash, var length) = VerifyFileJson.GenerateHash(file.Stream); if (hash != null) { _fileName = file.Name; _fileHash = hash; _length = length; } } catch (Exception ex) { Log.IgnoreException(ex); } }); if (_fileHash != null) { _verifyView.Update(new VerifyFileJson { name = _fileName, hashtype = _fileHash.HashType.ToString().ToLower(), hash = Hex.ToString(_fileHash.RawData), length = _length, link = _link.Edit.Text }); } IsBusy = false; }