Esempio n. 1
0
        public async Task CreateShipmentsWithError()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

            var client = new ShippingClient(accountNumber, username, password);

            client.Testing = true;

            var createRequest = CreateCreateShipmentsRequest();

            // Make an item way too big
            createRequest.Shipments[0].Items[1].Width = 20000;

            var createResponse = await client.CreateShipmentsAsync(createRequest);

            Assert.AreEqual(false, createResponse.Succeeded);
            Assert.AreEqual(0, createResponse.Shipments.Count);
            Assert.AreEqual(1, createResponse.Errors.Count);
            Assert.AreEqual(0, createResponse.Warnings.Count);
        }
 private async Task CreateShipment()
 {
     try
     {
         var req = new GrpcNewShipmentRequest()
         {
             TrackingCode           = MLShipment.TrackingCode,
             SetAutoUpdate          = true,
             MarketplaceAccountId   = AccountId.ToString(),
             MarketplaceSaleId      = MLShipment.OrderId.ToString(),
             BoundMarketplace       = "mercado livre",
             SetCreatedManually     = false,
             ShippingImplementation = GetShipmentImplementation(),
             PackageData            = new GrpcNewPackageRequest()
         };
         await ShippingClient.CreateShipment(req);
     }
     catch (Exception)
     {
         throw;
     }
 }
        private BringRatesSampleBlockView Search(BringRatesSampleBlockView formData)
        {
            var user = "******";
            var key  = "81ab897a-2c94-4f10-8f20-2b04a0b1cae1";

            var settings = new ShippingSettings(GetBaseUri(), user, key);
            var client   = new ShippingClient(settings);

            var shipmentLeg          = ParameterMapper.GetShipmentLeg(formData);
            var packageSize          = ParameterMapper.GetPackageSize(formData);
            var additionalParameters = ParameterMapper.GetAdditionalParameters(formData);

            var query  = new EstimateQuery(shipmentLeg, packageSize, additionalParameters);
            var result = client.FindAsync <ShipmentEstimate>(query).Result;

            var estimateGroups = result.Estimates
                                 .GroupBy(x => x.GuiInformation.MainDisplayCategory)
                                 .Select(x => new BringRatesSampleBlockView.EstimateGroup(x.Key, x));

            var model = new BringRatesSampleBlockView(estimateGroups);

            return(model);
        }
Esempio n. 4
0
        private async Task CreateShipment(OrderDetailJson order)
        {
            var isOrderRegistered = await GetIsOrderRegistered(order);

            var shipmentDetails = await GetShipmentDetails(order);

            var trackingCode = shipmentDetails.tracking_number;

            if (!isOrderRegistered && trackingCode != null)
            {
                var req = new gRPC.Client.ShippingClientProto.GrpcNewShipmentRequest()
                {
                    MarketplaceAccountId   = Account.MercadoLivreId.ToString(),
                    TrackingCode           = trackingCode,
                    SetAutoUpdate          = true,
                    BoundMarketplace       = "mercado livre",
                    MarketplaceSaleId      = order.id.ToString(),
                    PackageData            = new gRPC.Client.ShippingClientProto.GrpcNewPackageRequest(),
                    SetCreatedManually     = false,
                    ShippingImplementation = GetShippingImplementation(shipmentDetails)
                };
                await ShippingClient.CreateShipment(req);
            }
        }
Esempio n. 5
0
        public async Task DeleteItems()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

            var client = new ShippingClient(accountNumber, username, password);

            client.Testing = true;

            var createRequest = CreateCreateShipmentsRequest();

            var createResponse = await client.CreateShipmentsAsync(createRequest);

            Assert.AreEqual(true, createResponse.Succeeded, string.Join(", ", createResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, createResponse.Shipments.Count);
            Assert.AreEqual(2, createResponse.Shipments[0].Items.Count);

            var updateResponse = await client.DeleteItemAsync(createResponse.Shipments[0].ShipmentID, createResponse.Shipments[0].Items.First(i => i.ItemReference == "SKU-1").ItemID);

            // NOTE: This doesn't return anything other than a general success or fail
            Assert.AreEqual(true, updateResponse.Succeeded, string.Join(", ", updateResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(0, createResponse.Errors.Count);
            Assert.AreEqual(0, createResponse.Warnings.Count);

            var getShipmentsRequest = CreateGetShipmentsRequest(createResponse);

            var getShipmentsResponse = await client.GetShipmentsAsync(getShipmentsRequest);

            Assert.AreEqual(true, getShipmentsResponse.Succeeded, string.Join(", ", getShipmentsResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, getShipmentsResponse.Shipments.Count);
            Assert.AreEqual(0, getShipmentsResponse.Errors.Count);
            Assert.AreEqual(0, getShipmentsResponse.Warnings.Count);
            Assert.AreEqual(1, getShipmentsResponse.Shipments[0].Items.Count);
            Assert.AreEqual("SKU-2", getShipmentsResponse.Shipments[0].Items[0].ItemReference);
        }
Esempio n. 6
0
 public void InitializeClient()
 {
     this.shippingClient = new ShippingClient();
     shippingClient.Open();
 }
        public async Task DownloadLabels()
        {
            string accountNumber = AppConfiguration.AusPostAccountNumber;
            string username      = AppConfiguration.AusPostUsername;
            string password      = AppConfiguration.AusPostPassword;

            var client = new ShippingClient(accountNumber, username, password);

            client.Testing = true;

            // Delete files from previous runs
            string folder = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\Labels";

            if (!System.IO.Directory.Exists(folder))
            {
                System.IO.Directory.CreateDirectory(folder);
            }
            foreach (string file in System.IO.Directory.GetFiles(folder))
            {
                System.IO.File.Delete(file);
            }

            var createShipmentsRequest = CreateCreateShipmentsRequest();

            var createShipmentsResponse = await client.CreateShipmentsAsync(createShipmentsRequest);

            Assert.AreEqual(true, createShipmentsResponse.Succeeded, string.Join(", ", createShipmentsResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, createShipmentsResponse.Shipments.Count);
            Assert.AreEqual(1, createShipmentsResponse.Shipments[0].Items.Count);

            var updateRequest = CreateCreateLabelsRequest(createShipmentsResponse.Shipments[0].ShipmentID);

            var updateResponse = await client.CreateLabelsAsync(updateRequest);

            Assert.AreEqual(true, updateResponse.Succeeded, string.Join(", ", updateResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, updateResponse.Labels.Count);
            Assert.AreEqual(LabelStatus.Pending, updateResponse.Labels[0].Status);
            Assert.AreEqual(0, createShipmentsResponse.Errors.Count);
            Assert.AreEqual(0, createShipmentsResponse.Warnings.Count);

            // HACK: Wait for the labels to be generated...
            System.Threading.Thread.Sleep(5000);

            var getShipmentsRequest = CreateGetShipmentsRequest(createShipmentsResponse);

            var getShipmentsResponse = await client.GetShipmentsAsync(getShipmentsRequest);

            Assert.AreEqual(true, getShipmentsResponse.Succeeded, string.Join(", ", getShipmentsResponse.Errors.Select(e => e.Message)));
            Assert.AreEqual(1, getShipmentsResponse.Shipments.Count);
            Assert.IsTrue(!string.IsNullOrEmpty(getShipmentsResponse.Shipments[0].Items[0].Label.LabelUrl));
            Assert.AreEqual(0, getShipmentsResponse.Errors.Count);
            Assert.AreEqual(0, getShipmentsResponse.Warnings.Count);

            // Download the PDF
            string pdfFile = folder + "\\labels.pdf";

            Assert.IsFalse(System.IO.File.Exists(pdfFile));
            var downloadResponse = await client.DownloadLabelsAsync(getShipmentsResponse.Shipments[0].Items[0].Label.LabelUrl);

            Assert.AreEqual(true, downloadResponse.Succeeded, string.Join(", ", downloadResponse.Errors.Select(e => e.Message)));

            downloadResponse.SaveToFile(pdfFile);
            Assert.IsTrue(System.IO.File.Exists(pdfFile));
        }