/// <summary> /// Get status from PackageService for a already sent Package. /// </summary> /// <param name="sender"></param> /// <param name="distributionId"></param> /// <returns></returns> public List <DeliveryResult> GetPackageDelivery(string sender, string pnrOrgNr, int maxStatusMessages) { LogManager.LogTrace("SE.GOV.MM.Integration.Outlook.Service.PackageService: incoming GetPackageDeliveryStatus"); var request = new GetPackageDeliveryResultRequest() { PnrOrgNr = pnrOrgNr, Sender = sender, MaxStatusMessages = maxStatusMessages }; List <DeliveryResult> result; ServiceClient <IPackage> client = null; try { client = new ServiceClient <IPackage>("WSHttpBinding_IPackage"); var response = client.Proxy.GetPackageDeliveryResult(request); result = getDeliveryStatusResultFromDeliveryResult(response); } catch (CommunicationException ce) { client.Abort(); LogManager.Log(new Log.Log() { Exception = ce, Message = "SE.GOV.MM.Integration.Outlook.Service.PackageService: CommunicationException error getting delivery status.", EventId = EventId.CommunicationExceptionWithPackage, Level = Level.Error }); throw ce; } catch (Exception ex) { client.Abort(); LogManager.Log(new Log.Log() { Exception = ex, Message = "SE.GOV.MM.Integration.Outlook.Service.PackageService: Exception error getting delivery status.", EventId = EventId.CommunicationExceptionWithPackage, Level = Level.Error }); throw ex; } finally { if (client.State == CommunicationState.Faulted) { client.Abort(); } client = null; } LogManager.LogTrace("SE.GOV.MM.Integration.Outlook.Service.PackageService: leaving GetPackageDeliveryStatus"); return(result); }
/// <summary> /// Get a deliveryresult from a sent package. /// </summary> /// <param name="request"></param> /// <returns></returns> public GetPackageDeliveryResultResponse GetPackageDeliveryResult(GetPackageDeliveryResultRequest request) { request.RequestId = Guid.NewGuid(); LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.PackageService: incoming GetPackageDeliveryResult with RequestId: {0}", request.RequestId)); var listOfPackageDeliveryResult = _businessManager.GetPackageResult(request.MaxStatusMessages, request.PnrOrgNr, request.Sender, request.RequestId); if (listOfPackageDeliveryResult != null) { var listOfPackageResult = new List <PackageResult>(); foreach (var packageDeliveryResult in listOfPackageDeliveryResult) { var packageResult = new PackageResult() { CreatedDate = packageDeliveryResult.CreatedDate, DeliveryDate = packageDeliveryResult.DeliveryDate, DistributionId = packageDeliveryResult.DistributionId, Status = ConvertPackageDeliveryStatusToStatus(packageDeliveryResult.Status), Recipient = packageDeliveryResult.Recipient, Sender = request.Sender }; listOfPackageResult.Add(packageResult); } var response = new GetPackageDeliveryResultResponse() { PackageResult = listOfPackageResult, RequestId = request.RequestId }; LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.PackageService: leaving GetPackageDeliveryResult with RequestId: {0}", request.RequestId)); return(response); } LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.PackageService: leaving GetPackageDeliveryResult with a null value for RequestId: {0}", request.RequestId)); return(null); }