Ejemplo n.º 1
0
        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");
            }
        }
Ejemplo n.º 2
0
        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());
            }
        }
Ejemplo n.º 3
0
        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");
                }
            }
        }
Ejemplo n.º 4
0
        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;
        }