Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }