Exemple #1
0
        /// <summary>
        /// Creates the enquiry for customer.
        /// </summary>
        /// <param name="integrationEnquiry">The integration enquiry.</param>
        /// <returns>EnquiryResult object.</returns>
        public EnquiryResult CreateEnquiryForCustomer(IntegrationEnquiry integrationEnquiry)
        {
            Logger.InfoFormat("EnquiryFactory.CreateEnquiryForCustomer executing, with params integrationEnquiry, object contains: {0}.", integrationEnquiry.ToString());

            EnquiryResult enquiryResult = null;

            // check for you manual email process engaged
            if (EnquiryMethod.Equals("XML", StringComparison.OrdinalIgnoreCase))
            {
                EnquiryRequest enquiryRequest = BuildSiebelEnquiryRequest(integrationEnquiry);
                EnquiryResponse enquiryResponse = null;

                var xmlPacket = SerializationHelper.ConvertToXml(enquiryRequest);
                Logger.InfoFormat("EnquiryFactory.CreateEnquiryForCustomer executing XML{0}.", xmlPacket);
                try
                {
                    // call enquiry method via the channel factory
                    using (var proxy = new EnquiryProxy(EnquiryEndPoint, EnquiryTimeout))
                    {
                        enquiryResponse = proxy.Enquiry(enquiryRequest);
                    }
                }
                catch (Exception ex)
                {
                    // log error
                    Logger.Error("EnquiryFactory.CreateEnquiryForCustomer threw an exception.", ex);
                }

                enquiryResult = ProcessResponse(enquiryResponse);
            }
            else
            {
                enquiryResult = new EnquiryResult
                {
                    EnquiryNumber = string.Empty,
                    ResultStatus = ResultStatus.EmailRequired  // nothing to do Domain will email
                };
            }

            return enquiryResult;
        }
Exemple #2
0
        /// <summary>
        /// Processes the response.
        /// </summary>
        /// <param name="enquiryResponse">The enquiry response.</param>
        /// <returns>EnquiryResult object populated from the web service response.</returns>
        private EnquiryResult ProcessResponse(EnquiryResponse enquiryResponse)
        {
            Logger.Debug("EnquiryFactory.ProcessResponse executing.");

            EnquiryResult enquiryResult = new EnquiryResult();

            if (enquiryResponse != null)
            {
                if (!string.IsNullOrEmpty(enquiryResponse.EnquiryNumber))
                {
                    enquiryResult.ResultStatus = ResultStatus.Success;
                    enquiryResult.EnquiryNumber = enquiryResponse.EnquiryNumber.Replace("Your enquiry reference is:", "").Trim();
                }
                else
                {
                    string returnedError = "UNDEFINED";
                    string errorDescription = "UNDEFINED";

                    if (enquiryResponse.Error != null)
                    {
                        returnedError = enquiryResponse.Error;
                        errorDescription = enquiryResponse.ErrorDescription ?? "UNDEFINED";
                    }

                    enquiryResult.ResultStatus = ResultStatus.Error;
                    enquiryResult.Errors = new List<string> { returnedError, errorDescription };

                    Logger.ErrorFormat("EnquiryFactory.ProcessResponse failed with Error: {0}; ErrorDescription: {1}.", returnedError, errorDescription);
                }
            }
            else
            {
                string returnedError = "UNDEFINED";
                string errorDescription = "UNDEFINED";

                if (enquiryResponse.Error != null)
                {
                    returnedError = enquiryResponse.Error;
                    errorDescription = enquiryResponse.ErrorDescription ?? "UNDEFINED";
                }

                enquiryResult.ResultStatus = ResultStatus.Error;
                enquiryResult.Errors = new List<string> { returnedError, errorDescription };

                // log the error
                Logger.ErrorFormat("EnquiryFactory.ProcessResponse failed with Error: {0}; ErrorDescription: {1}.", returnedError, errorDescription);
            }

            return enquiryResult;
        }