public async Task CreatePackageShouldInvokeTheRightURL()
        {
            CreatePackage package = new CreatePackage();

            package.packageId = "testID";
            package.sender    = "sender";
            package.recipient = "recipient";

            mockBlockService.Setup(m => m.InvokeHead(HyperledgerConsts.TraderUrl, It.IsAny <String>()))
            .ReturnsAsync(true);
            await clientWithMock.CreatePackage(package);

            mockBlockService.Verify(m => m.InvokePost(HyperledgerConsts.CreatePackageUrl, It.IsAny <String>()));
        }
        async void CreatePackage()
        {
            BlockchainClient.Result error;
            CreatePackage           package = new CreatePackage
            {
                packageId = Guid.NewGuid().ToString(),
                sender    = client.thisTrader.traderId,
                recipient = recipient.Text,
                contents  = SelectedDataList.Where(prop => prop.selected)
                            .Select(prop => prop.data.PropertyId)
                            .ToList()
            };

            using (UserDialogs.Instance.Loading("Creating"))
            {
                error = await client.CreatePackage(package);
            }

            switch (error)
            {
            case BlockchainClient.Result.SUCCESS:
                await DisplayAlert("Alert", "Sucessful create Package. Please print label before initial departure scan", "Ok");

                break;

            case BlockchainClient.Result.NETWORK:
                await DisplayAlert("Alert", "Error: Network down. Please try again.", "Ok");

                break;
            }

            await Navigation.PopAsync();
        }