protected void Page_Load(object sender, EventArgs e) { // LOCATE THE SHIP GATEWAY INFORMATION string classId = Misc.GetClassId(typeof(CanadaPost)); IList <ShipGateway> gateways = ShipGatewayDataSource.LoadForClassId(classId); if (gateways.Count == 0) { Response.Redirect("Register.aspx"); } _ShipGateway = gateways[0]; // INITIALIZE THE PROVIDER SHIP METHOD CONTROL ShipMethods.ShipGatewayId = _ShipGateway.Id; // INITIALIZE THE FORM FIELDS ON FIRST VISIT if (!Page.IsPostBack) { CanadaPost provider = (CanadaPost)_ShipGateway.GetProviderInstance(); UseDebugMode.Checked = provider.UseDebugMode; UseTestMode.Checked = provider.UseTestMode; EnablePackaging.Checked = provider.EnablePackageBreakup; MerchantId.Text = provider.MerchantCPCID; LiveServerURL.Text = provider.LiveModeUrl; TestServerURL.Text = provider.TestModeUrl; TrackingURL.Text = provider.TrackingUrl; MaxWeight.Text = provider.MaxPackageWeight.ToString(); MinWeight.Text = provider.MinPackageWeight.ToString(); } }
protected void RegisterButton_Click(object sender, System.EventArgs e) { CanadaPost provider = new CanadaPost(); provider.MerchantCPCID = MerchantId.Text; provider.AccountActive = true; ShipGateway gateway = new ShipGateway(); gateway.Name = provider.Name; gateway.ClassId = Misc.GetClassId(typeof(CanadaPost)); gateway.UpdateConfigData(provider.GetConfigData()); gateway.Enabled = true; gateway.Save(); Response.Redirect("Configure.aspx?ShipGatewayId=" + gateway.Id); }
private void SaveShipGateWayProvider() { CanadaPost provider = (CanadaPost)_ShipGateway.GetProviderInstance(); provider.UseDebugMode = UseDebugMode.Checked; provider.UseTestMode = UseTestMode.Checked; provider.EnablePackageBreakup = EnablePackaging.Checked; provider.MerchantCPCID = MerchantId.Text; provider.LiveModeUrl = LiveServerURL.Text; provider.TestModeUrl = TestServerURL.Text; provider.TrackingUrl = TrackingURL.Text; provider.MaxPackageWeight = AlwaysConvert.ToDecimal(MaxWeight.Text, (decimal)provider.MaxPackageWeight); provider.MinPackageWeight = AlwaysConvert.ToDecimal(MinWeight.Text, (decimal)provider.MinPackageWeight); _ShipGateway.UpdateConfigData(provider.GetConfigData()); _ShipGateway.Save(); }
/* background worker that processing each order from the orderList */ private void backgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { // initialize all carrier fields Ups ups = new Ups(); CanadaPost canadaPost = new CanadaPost(); // start processing orders foreach (Order order in orderList) { // for sears order switch (order.Source) { case "Sears": { #region Sears Order // first get the detail for the order SearsValues value = sears.GenerateValue(order.TransactionId); // check if the order has been shipped before -> if not, ship it now if (value.Package.TrackingNumber == "") { value.Package = new Package(value); // second ship it string[] digest = ups.PostShipmentConfirm(value); if (ups.Error) { MessageBox.Show(ups.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string[] result = ups.PostShipmentAccept(digest[1]); if (ups.Error) { MessageBox.Show(ups.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // get identification, tracking, label and shipment confirm with no cancellation of item value.Package.IdentificationNumber = digest[0]; value.Package.TrackingNumber = result[0]; ups.ExportLabel(result[1], value.TransactionId, false); } sears.GenerateXml(value, new System.Collections.Generic.Dictionary <int, string>()); // post order to brightpearl with no cancellation bp.PostOrder(value, new int[0]); #endregion } break; case "Shop.ca": { #region Shop.ca Order // first get the detail for the order ShopCaValues value = shopCa.GenerateValue(order.TransactionId); // check if the order has been shipped before -> if not, ship it now if (value.Package.TrackingNumber == "") { value.Package = new Package(value); // second ship it string[] links = canadaPost.CreateShipment(value.ShipTo, value.Package); if (canadaPost.Error) { MessageBox.Show(canadaPost.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // get tracking, self link, label link and shipment confirm with no cancellation of item value.Package.TrackingNumber = links[0]; value.Package.SelfLink = links[1]; value.Package.LabelLink = links[2]; System.Threading.Thread.Sleep(5000); // get artifact and export it byte[] binary = canadaPost.GetArtifact(links[2]); canadaPost.ExportLabel(binary, value.OrderId, true, false); } shopCa.GenerateTxt(value, new System.Collections.Generic.Dictionary <int, string>()); // post order to brightpearl with no cancellation bp.PostOrder(value, new int[0]); #endregion } break; case "Giant Tiger": { #region Giant Tiger Order // first get the detail for the order GiantTigerValues value = giantTiger.GenerateValue(order.TransactionId); // check if the order has been shipped before -> if not, ship it now if (value.Package.TrackingNumber == "") { value.Package = new Package(value); // second ship it string[] links = canadaPost.CreateShipment(value.ShipTo, value.Package); if (canadaPost.Error) { MessageBox.Show(canadaPost.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // get tracking, self link, label link and shipment confirm with no cancellation of item value.Package.TrackingNumber = links[0]; value.Package.SelfLink = links[1]; value.Package.LabelLink = links[2]; System.Threading.Thread.Sleep(5000); // get artifact and export it byte[] binary = canadaPost.GetArtifact(links[2]); canadaPost.ExportLabel(binary, value.PoNumber, true, false); } giantTiger.GenerateCsv(value, new System.Collections.Generic.Dictionary <int, string>()); // post order to brightpearl with no cancellation bp.PostOrder(value, new int[0]); #endregion } break; } } }
/* void shipment button that void the current shipment for the order */ private void voidShipmentButton_Click(object sender, EventArgs e) { switch (CHANNEL) { case "Sears": #region UPS // post void shipment request and get the response Ups ups = new Ups(); ups.PostShipmentVoid(searsValues.Package.IdentificationNumber); // the case if is bad request if (ups.Error) { MessageBox.Show(ups.ErrorMessage, "Failure", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // mark transaction as not shipped new Sears().PostVoid(new[] { searsValues.TransactionId }); // set tracking and identification to nothing searsValues.Package.IdentificationNumber = string.Empty; searsValues.Package.TrackingNumber = string.Empty; break; #endregion case "Shop.ca": #region Canada Post { // post void shipment request and get the response CanadaPost canadaPost = new CanadaPost(); canadaPost.DeleteShipment(shopCaValues.Package.SelfLink); // the cas if is bad request if (canadaPost.Error) { MessageBox.Show(canadaPost.ErrorMessage, "Failure", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // mar order as not shipped new ShopCa().PostVoid(new[] { shopCaValues.OrderId }); // set tracking, self link, label link to nothing shopCaValues.Package.TrackingNumber = string.Empty; shopCaValues.Package.SelfLink = string.Empty; shopCaValues.Package.LabelLink = string.Empty; } break; #endregion case "Giant Tiger": #region Canada Post { // post void shipment request and get the response CanadaPost canadaPost = new CanadaPost(); canadaPost.DeleteShipment(giantTigerValues.Package.SelfLink); // the cas if is bad request if (canadaPost.Error) { MessageBox.Show(canadaPost.ErrorMessage, "Failure", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // mar order as not shipped new GiantTiger().PostVoid(new[] { giantTigerValues.PoNumber }); // set tracking, self link, label link to nothing giantTigerValues.Package.TrackingNumber = string.Empty; giantTigerValues.Package.SelfLink = string.Empty; giantTigerValues.Package.LabelLink = string.Empty; } break; #endregion } // mark cancel as invisible, set tracking number text to not shipped, and enable create label button voidShipmentButton.Visible = false; trackingNumberTextbox.Text = "Not shipped"; createLabelButton.Enabled = true; }
private void backgroundWorkerShip_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { switch (CHANNEL) { case "Sears": #region UPS // initialize field for shipment Ups ups = new Ups(); // post shipment confirm and get the digest string from response string[] digest = ups.PostShipmentConfirm(searsValues); // error checking if (ups.Error) { MessageBox.Show(ups.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Result = true; return; } // post shipment accept and get tracking number and image string[] acceptResult = ups.PostShipmentAccept(digest[1]); // error checking if (ups.Error) { MessageBox.Show(ups.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Result = true; return; } // retrieve identification number and tracking number searsValues.Package.IdentificationNumber = digest[0]; searsValues.Package.TrackingNumber = acceptResult[0]; // update database set the order's tracking number and identification number new Sears().PostShip(searsValues.Package.TrackingNumber, searsValues.Package.IdentificationNumber, searsValues.TransactionId); // get the shipment label and show it ups.ExportLabel(acceptResult[1], searsValues.TransactionId, true); break; #endregion case "Shop.ca": #region Canada Post { // initialize field for shipment CanadaPost canadaPost = new CanadaPost(); // create shipment for canada post string[] result = canadaPost.CreateShipment(shopCaValues.ShipTo, shopCaValues.Package); // error checking if (canadaPost.Error) { MessageBox.Show(canadaPost.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Result = true; return; } // retrieve tracking number, refund link and label link shopCaValues.Package.TrackingNumber = result[0]; shopCaValues.Package.SelfLink = result[1]; shopCaValues.Package.LabelLink = result[2]; // update database set the order's tracking number refund link and label link new ShopCa().PostShip(shopCaValues.Package.TrackingNumber, shopCaValues.Package.SelfLink, shopCaValues.Package.LabelLink, shopCaValues.OrderId); // get artifect Thread.Sleep(5000); byte[] artifect = canadaPost.GetArtifact(result[2]); // error checking if (canadaPost.Error) { MessageBox.Show(canadaPost.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Result = true; return; } // get the shipment label and show it canadaPost.ExportLabel(artifect, shopCaValues.OrderId, true, true); } break; #endregion case "Giant Tiger": #region Canada Post { // initialize field for shipment CanadaPost canadaPost = new CanadaPost(); // create shipment for canada post string[] result = canadaPost.CreateShipment(giantTigerValues.ShipTo, giantTigerValues.Package); // error checking if (canadaPost.Error) { MessageBox.Show(canadaPost.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Result = true; return; } // retrieve tracking number, refund link and label link giantTigerValues.Package.TrackingNumber = result[0]; giantTigerValues.Package.SelfLink = result[1]; giantTigerValues.Package.LabelLink = result[2]; // update database set the order's tracking number refund link and label link new GiantTiger().PostShip(giantTigerValues.Package.TrackingNumber, giantTigerValues.Package.SelfLink, giantTigerValues.Package.LabelLink, giantTigerValues.PoNumber); // get artifect Thread.Sleep(5000); byte[] artifect = canadaPost.GetArtifact(result[2]); // error checking if (canadaPost.Error) { MessageBox.Show(canadaPost.ErrorMessage, "Sorry", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Result = true; return; } // get the shipment label and show it canadaPost.ExportLabel(artifect, giantTigerValues.PoNumber, true, true); } break; #endregion } // set bool flag to false e.Result = false; }