public async Task <TrackResponse> Create([FromBody] TrackRequest newTrackRequest) { TrackDTO trackDTO = autoMapper.Map <TrackDTO>(newTrackRequest); TrackDTO createdTrackDTO = await trackService.CreateAsync(trackDTO); return(autoMapper.Map <TrackResponse>(createdTrackDTO)); }
public virtual IList <ShipmentStatusEvent> GetShipmentEvents(string trackingNumber) { var events = new List <ShipmentStatusEvent>(); if (string.IsNullOrWhiteSpace(trackingNumber)) { _logger.Information("Tracking number cannot be null or empty"); return(events); } try { var request = new TrackRequest { TrackId = new TrackId { Id = trackingNumber }, UserId = _uspsSettings.Username }; TrackResponse response = _trackService.Get(request); TrackInfo info = response.TrackInfo.FirstOrDefault(); if (info != null) { events.AddRange(info.TrackDetail.Select(e => new ShipmentStatusEvent { EventName = e.Value })); } } catch (Exception e) { _logger.Error(string.Format("Error while getting USPS shipment tracking info - {0}", trackingNumber), e); } return(events); }
public void informacionTracking() { TrackRequest request = CreateTrackRequest(); // TrackService service = new TrackService(); if (usePropertyFile()) { service.Url = getProperty("endpoint"); } // try { // Call the Track web service passing in a TrackRequest and returning a TrackReply TrackReply reply = service.track(request); if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) { ShowTrackReply(reply); } ShowNotifications(reply); } catch (SoapException e) { Console.WriteLine(e.Detail.InnerText); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Press any key to quit!"); Console.ReadKey(); }
/*void Main() * { * TrackRequest request = CreateTrackRequest(); * // * TrackService service = new TrackService(); * if (usePropertyFile()) * { * service.Url = getProperty("endpoint"); * } * // * try * { * // Call the Track web service passing in a TrackRequest and returning a TrackReply * TrackReply reply = service.track(request); * if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) * { * ShowTrackReply(reply); * } * ShowNotifications(reply); * } * catch (SoapException e) * { * Console.WriteLine(e.Detail.InnerText); * } * catch (Exception e) * { * Console.WriteLine(e.Message); * } * Console.WriteLine("Press any key to quit!"); * Console.ReadKey(); * }*/ private TrackRequest CreateTrackRequest() { // Build the TrackRequest TrackRequest request = new TrackRequest(); // request.WebAuthenticationDetail = new WebAuthenticationDetail(); request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.UserCredential.Key = "IoXBEjJlfQOOLlrx"; // Replace "XXX" with the Key request.WebAuthenticationDetail.UserCredential.Password = "******"; // Replace "XXX" with the Password request.WebAuthenticationDetail.ParentCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.ParentCredential.Key = "IoXBEjJlfQOOLlrx"; // Replace "XXX" with the Key request.WebAuthenticationDetail.ParentCredential.Password = "******"; // Replace "XXX" if (usePropertyFile()) //Set values from a file for testing purposes { request.WebAuthenticationDetail.UserCredential.Key = getProperty("key"); request.WebAuthenticationDetail.UserCredential.Password = getProperty("password"); request.WebAuthenticationDetail.ParentCredential.Key = getProperty("parentkey"); request.WebAuthenticationDetail.ParentCredential.Password = getProperty("parentpassword"); } // request.ClientDetail = new ClientDetail(); request.ClientDetail.AccountNumber = "510088000"; // Replace "XXX" with the client's account number request.ClientDetail.MeterNumber = "118817920"; // Replace "XXX" with the client's meter number if (usePropertyFile()) //Set values from a file for testing purposes { request.ClientDetail.AccountNumber = getProperty("accountnumber"); request.ClientDetail.MeterNumber = getProperty("meternumber"); } // request.TransactionDetail = new TransactionDetail(); request.TransactionDetail.CustomerTransactionId = "***Track Request using VC#***"; //This is a reference field for the customer. Any value can be used and will be provided in the response. // request.Version = new VersionId(); // // Tracking information request.SelectionDetails = new TrackSelectionDetail[1] { new TrackSelectionDetail() }; request.SelectionDetails[0].PackageIdentifier = new TrackPackageIdentifier(); request.SelectionDetails[0].PackageIdentifier.Value = _trackNumber; // Replace "XXX" with tracking number or door tag if (usePropertyFile()) //Set values from a file for testing purposes { request.SelectionDetails[0].PackageIdentifier.Value = getProperty("trackingnumber"); } request.SelectionDetails[0].PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG; // // Date range is optional. // If omitted, set to false request.SelectionDetails[0].ShipDateRangeBegin = DateTime.Parse("06/18/2012"); //MM/DD/YYYY request.SelectionDetails[0].ShipDateRangeEnd = request.SelectionDetails[0].ShipDateRangeBegin.AddDays(0); request.SelectionDetails[0].ShipDateRangeBeginSpecified = false; request.SelectionDetails[0].ShipDateRangeEndSpecified = false; // // Include detailed scans is optional. // If omitted, set to false request.ProcessingOptions = new TrackRequestProcessingOptionType[1]; request.ProcessingOptions[0] = TrackRequestProcessingOptionType.INCLUDE_DETAILED_SCANS; return(request); }
public JsonResult ApproveRequestInsert(string RequestGUID) { TimeShield_dbEntities db = new TimeShield_dbEntities(); var approve = db.Requests.Where(r => r.RequestGUID == RequestGUID).ToList(); foreach (var ap in approve) { ap.Approveflag = 1; } db.SaveChanges(); var approved = db.Requests.Where(r => r.Approveflag == 1 && r.RequestGUID == RequestGUID).Select(a => new { a.RequestGUID, a.UserId }).FirstOrDefault(); TrackRequest trackRequest = new TrackRequest { RequestGUID = approved.RequestGUID, ApproveTime = DateTime.Now, UserId = approved.UserId }; db.TrackRequests.Add(trackRequest); db.SaveChanges(); return(Json(new { result = "Redirect", url = Url.Action("NewRequest", "User") }, JsonRequestBehavior.AllowGet)); }
private void BwReminder_DoWork(object sender, DoWorkEventArgs e) { using (Context db = new Context()) { List <Reminder> list = db.Reminders.ToList(); if (list.Count != 0) { foreach (Reminder item in list) { TrackRequest track = NovaPoshtaApi.SendRequest(item.TTN, null); if (track.data[0].StatusCode != item.StatusId.ToString()) { User user = db.Users.First(x => x.Id == item.UserId); item.StatusId = Convert.ToInt32(track.data[0].StatusCode); BOT.SendTextMessageAsync(user.Telegram, $"Добрый день!{Environment.NewLine}По ТТН{item.TTN} произошли изменения статуса - теперь документ в статусе {track.data[0].Status}"); db.SaveChanges(); } } } else { return; } } }
public async Task <ActionResult <TrackResponse> > Post(TrackRequest input) { var track = await _tracksRepository.AddAsync(input.MapTrack()); var result = track.MapTrackResponse(); return(CreatedAtAction(nameof(GetById), new { result.ID }, result)); }
public TrackResponse Get(TrackRequest request) { string response = DoRequest(request); var responseXml = XElement.Parse(response); return(responseXml.Name == "Error" ? new TrackResponse { Error = response.ToObject <RequestError>() } : response.ToObject <TrackResponse>()); }
public static bool Track(string[] pluginIds) { var trackRequest = new TrackRequest { PlayerHash = PlayerHash, EnabledPluginIds = pluginIds }; return(SimpleHttpClient.Post(TrackUri, trackRequest)); }
private void StartTrack(TrackRequest newTrack) { if (newTrack == null) { return; } CurrentTrack = newTrack; StartTimer(newTrack.Song.Playtime * 1000); // Convert s to ms SwitchedSongEvent(this, new SwitchedSongEventArgs(newTrack, DateTime.Now)); }
public void Get_InvalidRequest_ReturnsError() { var trackRequest = new TrackRequest { TrackId = new TrackId(), UserId = _userId }; TrackResponse trackResponse = _trackService.Get(trackRequest); Assert.That(trackResponse.Error, Is.Not.Null); }
public void CreateTrackRequest(string trackingNumber) { // Initialize this.request = new TrackRequest(); // Authentication information request.WebAuthenticationDetail = new WebAuthenticationDetail(); request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.UserCredential.Key = KEY; // Replace "XXX" with the Key request.WebAuthenticationDetail.UserCredential.Password = PASSWORD; // Replace "XXX" with the Password // Account & meter numbers request.ClientDetail = new ClientDetail(); request.ClientDetail.AccountNumber = ACCOUNT_NUMBER; // Replace "XXX" with the client's account number request.ClientDetail.MeterNumber = METER_NUMBER; // Replace "XXX" with the client's meter number // request.TransactionDetail = new TransactionDetail(); request.TransactionDetail.CustomerTransactionId = "***Track Request using VC#***"; //This is a reference field for the customer. Any value can be used and will be provided in the response. // request.Version = new VersionId(); // // Tracking information request.SelectionDetails = new TrackSelectionDetail[1] { new TrackSelectionDetail() }; request.SelectionDetails[0].PackageIdentifier = new TrackPackageIdentifier(); request.SelectionDetails[0].PackageIdentifier.Value = trackingNumber; // Replace "XXX" with tracking number or door tag request.SelectionDetails[0].PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG; // Date range is optional. // If omitted, set to false request.SelectionDetails[0].ShipDateRangeBegin = DateTime.Parse("06/18/2012"); //MM/DD/YYYY request.SelectionDetails[0].ShipDateRangeEnd = request.SelectionDetails[0].ShipDateRangeBegin.AddDays(0); request.SelectionDetails[0].ShipDateRangeBeginSpecified = false; request.SelectionDetails[0].ShipDateRangeEndSpecified = false; // Include detailed scans is optional. // If omitted, set to false request.ProcessingOptions = new TrackRequestProcessingOptionType[1]; request.ProcessingOptions[0] = TrackRequestProcessingOptionType.INCLUDE_DETAILED_SCANS; // Run the track request and get reply try { this.reply = this.service.track(request); } catch (Exception) { throw; } }
public static List <DeliveryNotice> GetLogisticsTraceDetail(Context ctx, List <DeliveryNotice> notices) { if (notices != null && notices.Count > 0) { foreach (var notice in notices) { if (notice != null) { if (notice.TraceEntry != null && notice.TraceEntry.Count > 0) { foreach (var trace in notice.TraceEntry) { if (trace != null) { TrackRequest request = CreateTrackRequest(trace.FCarryBillNo); LogXML("trackingNumber:[" + trace.FCarryBillNo + "] Request", request, typeof(TrackRequest)); // TrackService service = new TrackService(); if (usePropertyFile()) { service.Url = getProperty("endpoint"); } // try { // Call the Track web service passing in a TrackRequest and returning a TrackReply TrackReply reply = service.track(request); LogXML("trackingNumber:[" + trace.FCarryBillNo + "] Reply", reply, typeof(TrackReply)); if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) { ShowTrackReply(reply); notice.LocusEntry = GetLocusDetail(reply); } ShowNotifications(reply); } catch (SoapException ex) { SynchroDataHelper.WriteSynchroLog(ctx, SynchroDataType.DeliveryNoticeBill, ex.Message + System.Environment.NewLine + ex.StackTrace); } catch (Exception ex) { SynchroDataHelper.WriteSynchroLog(ctx, SynchroDataType.DeliveryNoticeBill, ex.Message + System.Environment.NewLine + ex.StackTrace); } } } } } } } return(notices); }
private static TrackRequest CreateTrackRequest() { // Build the TrackRequest TrackRequest request = new TrackRequest(); // request.WebAuthenticationDetail = new WebAuthenticationDetail(); request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.UserCredential.Key = "8HHdHUYeSfTJRSFS"; // Replace "XXX" with the Key request.WebAuthenticationDetail.UserCredential.Password = "******"; // Replace "XXX" with the Password request.WebAuthenticationDetail.ParentCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.ParentCredential.Key = "8HHdHUYeSfTJRSFS"; // Replace "XXX" with the Key request.WebAuthenticationDetail.ParentCredential.Password = "******"; // Replace "XXX" if (usePropertyFile()) //Set values from a file for testing purposes { request.WebAuthenticationDetail.UserCredential.Key = getProperty("key"); request.WebAuthenticationDetail.UserCredential.Password = getProperty("password"); request.WebAuthenticationDetail.ParentCredential.Key = getProperty("parentkey"); request.WebAuthenticationDetail.ParentCredential.Password = getProperty("parentpassword"); } // request.ClientDetail = new ClientDetail(); request.ClientDetail.AccountNumber = "398001460"; // Replace "XXX" with the client's account number request.ClientDetail.MeterNumber = "111563032"; // Replace "XXX" with the client's meter number // request.TransactionDetail = new TransactionDetail(); request.TransactionDetail.CustomerTransactionId = "81200001362-373570-281"; //This is a reference field for the customer. Any value can be used and will be provided in the response. // request.Version = new VersionId(); // // Tracking information request.SelectionDetails = new TrackSelectionDetail[1] { new TrackSelectionDetail() }; request.SelectionDetails[0].PackageIdentifier = new TrackPackageIdentifier(); request.SelectionDetails[0].PackageIdentifier.Value = "742268951584"; // Replace "XXX" with tracking number or door tag request.SelectionDetails[0].PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG; // request.SelectionDetails[0].ShipmentAccountNumber = "398001460"; // Date range is optional. // If omitted, set to false //request.SelectionDetails[0].ShipDateRangeBegin = DateTime.Parse("9/05/2017"); //MM/DD/YYYY //request.SelectionDetails[0].ShipDateRangeEnd = request.SelectionDetails[0].ShipDateRangeBegin.AddDays(30); request.SelectionDetails[0].ShipDateRangeBeginSpecified = false; request.SelectionDetails[0].ShipDateRangeEndSpecified = false; // // Include detailed scans is optional. // If omitted, set to false request.ProcessingOptions = new TrackRequestProcessingOptionType[1]; request.ProcessingOptions[0] = TrackRequestProcessingOptionType.INCLUDE_DETAILED_SCANS; return(request); }
public void Get_ValidTrackingNumber1_ReturnsTrackingInfo() { var trackRequest = new TrackRequest { TrackId = new TrackId { Id = "EJ958088694US" }, UserId = _userId }; TrackResponse trackResponse = _trackService.Get(trackRequest); Assert.That(trackResponse.TrackInfo[0].TrackDetail.Count, Is.GreaterThan(0)); }
public void Get_InvalidTrackingNumber_ReturnsTrackingInfoError() { var trackRequest = new TrackRequest { TrackId = new TrackId { Id = "12345" }, UserId = _userId }; TrackResponse trackResponse = _trackService.Get(trackRequest); Assert.That(trackResponse.TrackInfo[0].Error, Is.Not.Null); }
public void Get_InvalidTrackingNumber_ReturnsNoRecordSummary() { var trackRequest = new TrackRequest { TrackId = new TrackId { Id = "EJ888888888US" }, UserId = _userId }; TrackResponse trackResponse = _trackService.Get(trackRequest); Assert.That(trackResponse.TrackInfo[0].TrackSummary, Contains.Substring("There is no record")); }
private static void PublishAIS(Track track) { try { TrackRequest.Parameters.Clear(); TrackRequest.AddJsonBody(track); IRestResponse response = RestClient.Execute(TrackRequest); Log.Information(response.StatusCode.ToString()); } catch (Exception ex) { Log.Error(ex, "{@Message}" + Environment.NewLine + "{StackTrace}.", ex.Message, ex.StackTrace); } }
static void OnUserJoinedVoiceChannel(ChannelUserEventArgs e, SoundBoard soundBoard, SoundManager soundManager, Random random) { if (e.User.IsBot) { MyLogger.WriteLine("Bot joined a voice channel. Ignoring..."); return; } if (e.Channel.IsAFK()) { MyLogger.WriteLine("User joined an AFK voice channel. Ignoring..."); return; } if (soundManager.IsPlaying) { MyLogger.WriteLine("_soundManager.HasThingsInQueue() is true. Ignoring..."); return; } MyLogger.WriteLine(e.User.Name + " joined voice channel: " + e.Channel); var list = new[] { Tuple.Create("reinhardt", "hello"), Tuple.Create("genji", "hello"), Tuple.Create("mercy", "hello"), Tuple.Create("torbjorn", "hello"), Tuple.Create("winston", "hi there"), Tuple.Create("suhdude", "#random") }; var i = random.Next(list.Length); var x = list[i]; MyLogger.WriteLine("User joined a voice channel. Sending: " + x.Item1 + " " + x.Item2); FileInfo soundFile; if (soundBoard.TryGetSoundPath(x.Item1, x.Item2, out soundFile) == false) { MyLogger.WriteException(new FileNotFoundException("Couldn't Find TrackRequest but should have")); return; } var track = new Track { Path = soundFile.FullName, Title = $"{x.Item1}: {x.Item2}" }; var sound = new TrackRequest(track, e.Channel.Server.DefaultChannel, e.Channel) { TextUpdates = false }; soundManager.EnqueueSound(sound); }
public void CreateTrackRequest(string trackingNumber) { // Tracking information this.request = new TrackRequest(); request.InquiryNumber = trackingNumber; try { this.reply = this.service.ProcessTrack(request); } catch (Exception) { throw; } }
public async Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken) { iprot.IncrementRecursionDepth(); try { TField field; await iprot.ReadStructBeginAsync(cancellationToken); while (true) { field = await iprot.ReadFieldBeginAsync(cancellationToken); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.Struct) { TrackRequest = new TrackRequest(); await TrackRequest.ReadAsync(iprot, cancellationToken); } else { await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); } break; default: await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); break; } await iprot.ReadFieldEndAsync(cancellationToken); } await iprot.ReadStructEndAsync(cancellationToken); } finally { iprot.DecrementRecursionDepth(); } }
/// <summary> /// Gets all events for a tracking number. /// </summary> /// <param name="trackingNumber">The tracking number to track</param> /// <returns>List of Shipment Events.</returns> public virtual IList <ShipmentStatusEvent> GetShipmentEvents(string trackingNumber) { if (string.IsNullOrEmpty(trackingNumber)) { return(new List <ShipmentStatusEvent>()); } var result = new List <ShipmentStatusEvent>(); try { //use try-catch to ensure exception won't be thrown if web service is not available var track = new TrackService(); var tr = new TrackRequest(); var upss = new UPSSecurity(); var upssSvcAccessToken = new UPSSecurityServiceAccessToken(); upssSvcAccessToken.AccessLicenseNumber = _upsSettings.AccessKey; upss.ServiceAccessToken = upssSvcAccessToken; var upssUsrNameToken = new UPSSecurityUsernameToken(); upssUsrNameToken.Username = _upsSettings.Username; upssUsrNameToken.Password = _upsSettings.Password; upss.UsernameToken = upssUsrNameToken; track.UPSSecurityValue = upss; var request = new RequestType(); string[] requestOption = { "15" }; request.RequestOption = requestOption; tr.Request = request; tr.InquiryNumber = trackingNumber; System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate { return(true); }; var trackResponse = track.ProcessTrack(tr); result.AddRange(trackResponse.Shipment.SelectMany(c => c.Package[0].Activity.Select(ToStatusEvent)).ToList()); } catch (SoapException ex) { var sb = new StringBuilder(); sb.AppendFormat("SoapException Message= {0}.", ex.Message); sb.AppendFormat("SoapException Category:Code:Message= {0}.", ex.Detail.LastChild.InnerText); //sb.AppendFormat("SoapException XML String for all= {0}.", ex.Detail.LastChild.OuterXml); _logger.Error(string.Format("Error while getting UPS shipment tracking info - {0}", trackingNumber), new Exception(sb.ToString())); } catch (Exception exc) { _logger.Error(string.Format("Error while getting UPS shipment tracking info - {0}", trackingNumber), exc); } return(result); }
private TrackRequest _trackingInit() { TrackRequest request = new TrackRequest(); request.WebAuthenticationDetail = new QDLogistics.FedExTrackService.WebAuthenticationDetail(); request.WebAuthenticationDetail.UserCredential = new QDLogistics.FedExTrackService.WebAuthenticationCredential(); request.WebAuthenticationDetail.UserCredential.Key = api_key; request.WebAuthenticationDetail.UserCredential.Password = api_password; request.ClientDetail = new QDLogistics.FedExTrackService.ClientDetail(); request.ClientDetail.AccountNumber = api_accountNumber; request.ClientDetail.MeterNumber = api_meterNumber; request.ProcessingOptions = new TrackRequestProcessingOptionType[1]; request.ProcessingOptions[0] = TrackRequestProcessingOptionType.INCLUDE_DETAILED_SCANS; return(request); }
/// <summary> /// Gets all events for a tracking number. /// </summary> /// <param name="trackingNumber">The tracking number to track</param> /// <returns>List of Shipment Events.</returns> public virtual IList <ShipmentStatusEvent> GetShipmentEvents(string trackingNumber) { if (string.IsNullOrEmpty(trackingNumber)) { return(new List <ShipmentStatusEvent>()); } var result = new List <ShipmentStatusEvent>(); try { //use try-catch to ensure exception won't be thrown is web service is not available var track = new TrackService(); var tr = new TrackRequest(); var upss = new UPSSecurity(); var upssSvcAccessToken = new UPSSecurityServiceAccessToken { AccessLicenseNumber = _upsSettings.AccessKey }; upss.ServiceAccessToken = upssSvcAccessToken; var upssUsrNameToken = new UPSSecurityUsernameToken { Username = _upsSettings.Username, Password = _upsSettings.Password }; upss.UsernameToken = upssUsrNameToken; track.UPSSecurityValue = upss; var request = new RequestType(); string[] requestOption = { "15" }; request.RequestOption = requestOption; tr.Request = request; tr.InquiryNumber = trackingNumber; System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate { return(true); }; var trackResponse = track.ProcessTrack(tr); result.AddRange(trackResponse.Shipment.SelectMany(c => c.Package[0].Activity.Select(ToStatusEvent)).ToList()); } catch (Exception exc) { _logger.Error($"Error while getting UPS shipment tracking info - {trackingNumber}", exc); } return(result); }
public IEnumerable <ShipmentStatusEvent> GetShipmentStatusEvents(string trackingNumber) { var settings = UPSSettings.LoadFrom(_settingsService); var track = CreateTrackService(settings); var request = new TrackRequest(); var requestType = new RequestType(); requestType.RequestOption = new string[] { "15" }; request.Request = requestType; request.InquiryNumber = trackingNumber; System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate { return(true); }; var trackResponse = track.ProcessTrack(request); var result = new List <ShipmentStatusEvent>(); result.AddRange(trackResponse.Shipment.SelectMany(c => c.Package[0].Activity.Select(x => ToStatusEvent(x))).ToList()); return(result); }
public TrackRequest CreateTrackRequest(string TrackNumber) { //The following code is almost entirely based on WebAPI example // Build the TrackRequest TrackRequest request = new TrackRequest(); // request.WebAuthenticationDetail = new WebAuthenticationDetail(); request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.UserCredential.Key = UserKey; // Replace "XXX" with the Key request.WebAuthenticationDetail.UserCredential.Password = UserPassword; // Replace "XXX" with the Password request.WebAuthenticationDetail.ParentCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.ParentCredential.Key = "XXX"; // Replace "XXX" with the Key request.WebAuthenticationDetail.ParentCredential.Password = "******"; // Replace "XXX" request.ClientDetail = new ClientDetail(); request.ClientDetail.AccountNumber = AccountNumber; // Replace "XXX" with the client's account number request.ClientDetail.MeterNumber = MeterNumber; // Replace "XXX" with the client's meter number request.TransactionDetail = new TransactionDetail(); request.TransactionDetail.CustomerTransactionId = TransactionID; //This is a reference field for the customer. Any value can be used and will be provided in the response. // request.Version = new VersionId(); // // Tracking information request.SelectionDetails = new TrackSelectionDetail[1] { new TrackSelectionDetail() }; request.SelectionDetails[0].PackageIdentifier = new TrackPackageIdentifier(); request.SelectionDetails[0].PackageIdentifier.Value = TrackNumber; // Replace "XXX" with tracking number or door tag request.SelectionDetails[0].PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG; // // Date range is optional. // If omitted, set to false request.SelectionDetails[0].ShipDateRangeBegin = DateTime.Parse("06/18/2012"); //MM/DD/YYYY request.SelectionDetails[0].ShipDateRangeEnd = request.SelectionDetails[0].ShipDateRangeBegin.AddDays(0); request.SelectionDetails[0].ShipDateRangeBeginSpecified = false; request.SelectionDetails[0].ShipDateRangeEndSpecified = false; // // Include detailed scans is optional. // If omitted, set to false request.ProcessingOptions = new TrackRequestProcessingOptionType[1]; request.ProcessingOptions[0] = TrackRequestProcessingOptionType.INCLUDE_DETAILED_SCANS; return(request); }
public TrackReply Tracking(string trackingNumber) { TrackRequest request = _trackingInit(); request.TransactionDetail = new QDLogistics.FedExTrackService.TransactionDetail(); request.TransactionDetail.CustomerTransactionId = "*** Track Request ***"; request.Version = new QDLogistics.FedExTrackService.VersionId(); request.SelectionDetails = new TrackSelectionDetail[1] { new TrackSelectionDetail() }; request.SelectionDetails[0].PackageIdentifier = new TrackPackageIdentifier(); request.SelectionDetails[0].PackageIdentifier.Value = trackingNumber; request.SelectionDetails[0].PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG; TrackPortTypeClient client = new TrackPortTypeClient(); TrackReply reply = client.track(request); return(reply); }
public void MailService_Fedex_GetTrack() { //arrange string fedexKey = string.Empty; string fedexPassword = string.Empty; string fedexAccountNumber = string.Empty; string fedexMeterNumber = string.Empty; string fedexTrackingNumber = string.Empty; TrackRequest request = _mailSvc.CreateFedexTrackRequest(fedexKey, fedexPassword, fedexAccountNumber, fedexMeterNumber, fedexTrackingNumber); //act TrackReply reply = _mailSvc.GetFedexTrack(request); //assert foreach (CompletedTrackDetail detail in reply.completedTrackDetailsField) { foreach (TrackDetail trackDetail in detail.trackDetailsField) { Address address = trackDetail.destinationAddressField; //trackDetail.actualDeliveryAddressField; string status = trackDetail.statusDetailField != null ? trackDetail.statusDetailField.descriptionField : ""; DateTime actualDeliveryTime; DateTime estimatedDeliveryTime; DateTime pickupTime; if (trackDetail.estimatedPickupTimestampFieldSpecified) { pickupTime = trackDetail.estimatedPickupTimestampField; } if (trackDetail.actualDeliveryTimestampFieldSpecified) { actualDeliveryTime = trackDetail.actualDeliveryTimestampField; } if (trackDetail.estimatedDeliveryTimestampFieldSpecified) { estimatedDeliveryTime = trackDetail.estimatedDeliveryTimestampField; } } } }
public TrackResponse GetTrackingInfo(string TrackingNumber) { //The following code is from the WebAPI example //Construct objects var TrackService = new TrackService(); var TrackRequest = new TrackRequest(); var UPSSecurityObject = new UPSSecurity(); var upssSvcAccessToken = new UPSSecurityServiceAccessToken(); //Assign parameters upssSvcAccessToken.AccessLicenseNumber = AccessLicenseNumber; UPSSecurityObject.ServiceAccessToken = upssSvcAccessToken; var upssUsrNameToken = new UPSSecurityUsernameToken(); upssUsrNameToken.Username = Username; upssUsrNameToken.Password = Password; UPSSecurityObject.UsernameToken = upssUsrNameToken; TrackService.UPSSecurityValue = UPSSecurityObject; RequestType request = new RequestType(); String[] requestOption = { "15" }; request.RequestOption = requestOption; TrackRequest.Request = request; TrackRequest.InquiryNumber = TrackingNumber; System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy(); //Send request and receive results try { TrackResponse Results = TrackService.ProcessTrack(TrackRequest); return(Results); } catch (System.Web.Services.Protocols.SoapException ex) { throw new Exception(ex.Message); } }
/// <summary> /// Gets all events for a tracking number. /// </summary> /// <param name="trackingNumber">The tracking number to track</param> /// <returns>List of Shipment Events.</returns> public virtual IList <ShipmentStatusEvent> GetShipmentEvents(string trackingNumber) { var result = new List <ShipmentStatusEvent>(); try { //use try-catch to ensure exception won't be thrown is web service is not available var track = new TrackService(); var tr = new TrackRequest(); var upss = new UPSSecurity(); var upssSvcAccessToken = new UPSSecurityServiceAccessToken(); upssSvcAccessToken.AccessLicenseNumber = _upsSettings.AccessKey; upss.ServiceAccessToken = upssSvcAccessToken; var upssUsrNameToken = new UPSSecurityUsernameToken(); upssUsrNameToken.Username = _upsSettings.Username; upssUsrNameToken.Password = _upsSettings.Password; upss.UsernameToken = upssUsrNameToken; track.UPSSecurityValue = upss; var request = new RequestType(); string[] requestOption = { "15" }; request.RequestOption = requestOption; tr.Request = request; tr.InquiryNumber = trackingNumber; var trackResponse = track.ProcessTrack(tr); result.AddRange(trackResponse.Shipment.SelectMany(c => c.Package[0].Activity.Select(x => ToStatusEvent(x))).ToList()); } catch (SoapException ex) { _logger.ErrorFormat(ex, "Error while getting UPS shipment tracking info - {0}", trackingNumber); } catch (Exception ex) { _logger.ErrorFormat(ex, "Error while getting UPS shipment tracking info - {0}", trackingNumber); } return(result); }
/// <remarks/> public void ProcessTrackAsync(TrackRequest TrackRequest) { this.ProcessTrackAsync(TrackRequest, null); }
/// <remarks/> public System.IAsyncResult Begintrack(TrackRequest TrackRequest, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("track", new object[] { TrackRequest}, callback, asyncState); }
/// <remarks/> public void trackAsync(TrackRequest TrackRequest) { this.trackAsync(TrackRequest, null); }
/// <remarks/> public void trackAsync(TrackRequest TrackRequest, object userState) { if ((this.trackOperationCompleted == null)) { this.trackOperationCompleted = new System.Threading.SendOrPostCallback(this.OntrackOperationCompleted); } this.InvokeAsync("track", new object[] { TrackRequest}, this.trackOperationCompleted, userState); }
/// <summary> /// Gets all events for a tracking number. /// </summary> /// <param name="trackingNumber">The tracking number to track</param> /// <returns>List of Shipment Events.</returns> public virtual IList<ShipmentStatusEvent> GetShipmentEvents(string trackingNumber) { if (string.IsNullOrEmpty(trackingNumber)) return new List<ShipmentStatusEvent>(); var result = new List<ShipmentStatusEvent>(); try { //use try-catch to ensure exception won't be thrown is web service is not available //build the TrackRequest var request = new TrackRequest(); // request.WebAuthenticationDetail = new WebAuthenticationDetail(); request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.UserCredential.Key = _fedexSettings.Key; // Replace "XXX" with the Key request.WebAuthenticationDetail.UserCredential.Password = _fedexSettings.Password; // Replace "XXX" with the Password // request.ClientDetail = new ClientDetail(); request.ClientDetail.AccountNumber = _fedexSettings.AccountNumber; // Replace "XXX" with client's account number request.ClientDetail.MeterNumber = _fedexSettings.MeterNumber; // Replace "XXX" with client's meter number // request.TransactionDetail = new TransactionDetail(); request.TransactionDetail.CustomerTransactionId = "***nopCommerce v16 Request using VC#***"; //creates the Version element with all child elements populated from the wsdl request.Version = new VersionId(); //tracking information request.PackageIdentifier = new TrackPackageIdentifier(); request.PackageIdentifier.Value = trackingNumber; request.PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG; request.IncludeDetailedScans = true; request.IncludeDetailedScansSpecified = true; //initialize the service var service = new TrackService(_fedexSettings.Url); //this is the call to the web service passing in a TrackRequest and returning a TrackReply TrackReply reply = service.track(request); //parse response if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) // check if the call was successful { foreach (TrackDetail trackDetail in reply.TrackDetails) { if (trackDetail.Events != null) { //Set the parent level attributes //var statusDescription = trackDetail.StatusDescription; //var tatusCode = trackDetail.StatusCode; //if (statusCode == "DL") //{ // var delivered = true; //} //if (trackDetail.SignatureProofOfDeliveryAvailable == true) //{ // trackResults.SignedForBy = trackDetail.DeliverySignatureName; //} //if (trackDetail.ShipmentWeight != null) //{ // var shipmentWeight = string.Format("{0} {1}", trackDetail.ShipmentWeight.Value, trackDetail.ShipmentWeight.Units); //} //else //{ // var shipmentWeight = string.Format("{0} {1}", trackDetail.PackageWeight.Value, trackDetail.PackageWeight.Units); //} //var shipDate = trackDetail.ShipTimestamp; //var serviceType = trackDetail.ServiceInfo; //var packageCount = int.Parse(trackDetail.PackageCount); //var destination = string.Format("{0}, {1} {2}", trackDetail.DestinationAddress.City, trackDetail.DestinationAddress.StateOrProvinceCode, trackDetail.DestinationAddress.CountryCode); //var deliveryDate = trackDetail.ActualDeliveryTimestamp; //Set the TrackingActivity foreach (TrackEvent trackevent in trackDetail.Events) { var sse = new ShipmentStatusEvent(); if (trackevent.TimestampSpecified) { sse.Date = trackevent.Timestamp; } sse.EventName = String.Format("{0} ({1})", trackevent.EventDescription, trackevent.EventType); sse.Location = trackevent.Address.City; sse.CountryCode = trackevent.Address.CountryCode; //other properties (not used yet) //trackevent.EventType; //trackevent.Address.PostalCode; //trackevent.Address.StateOrProvinceCode; //trackevent.StatusExceptionCode; //trackevent.StatusExceptionDescription; result.Add(sse); } } } } //result.AddRange(trackResponse.Shipment.SelectMany(c => c.Package[0].Activity.Select(x => ToStatusEvent(x))).ToList()); } catch (SoapException ex) { var sb = new StringBuilder(); sb.AppendFormat("SoapException Message= {0}.", ex.Message); sb.AppendFormat("SoapException Category:Code:Message= {0}.", ex.Detail.LastChild.InnerText); //sb.AppendFormat("SoapException XML String for all= {0}.", ex.Detail.LastChild.OuterXml); _logger.Error(string.Format("Error while getting Fedex shipment tracking info - {0}", trackingNumber), new Exception(sb.ToString())); } catch (Exception exc) { _logger.Error(string.Format("Error while getting Fedex shipment tracking info - {0}", trackingNumber), exc); } return result; }