Example #1
0
        public void SendToGateway(AssociatedDoc assDoc, SummaryData sumData)
        {
            if (assDoc == null)
            {
                throw new Exception("Unable to find an associated doc to transmit." + Environment.NewLine +
                                    "Error CNF-421 in " + FORM_NAME + ".SendToGateway().");
            }

            if (sumData == null)
            {
                throw new Exception("Unable to transmit an associated document without an attached summary data." + Environment.NewLine +
                                    "Error CNF-422 in " + FORM_NAME + ".SendToGateway().");
            }

            DetermineTransmitDestination(assDoc);
            if (transmitDestination == null)
            {
                UserCanceled = true;
                return;
            }

            int xmitRequestId = xmitRequestDal.SaveAssociatedDocumentXmitRequest(assDoc.Id,
                                                                                 transmitDestination.Type, transmitDestination.Value, InboundSettings.UserName);

            var callbackGen = new TransmitCallbackGenerator(xmitRequestId);

            var destinations = transmitDestination.Value.Split(';');

            foreach (string destin in destinations)
            {
                var request = new FaxRequest {
                    FaxNumber = destin, AppCode = PRODUCT_INB_APP_CODE
                };

                request.AppSender = InboundSettings.UserName;

                request.ReceiptAction = new CallbackAction("http",
                                                           callbackGen.GenerateUrl(TransmitCallbackAction.Queued));


                request.Action.SuccessAction = new CallbackAction("http",
                                                                  callbackGen.GenerateUrl(TransmitCallbackAction.Success));

                request.Action.FailureAction = new CallbackAction("http",
                                                                  callbackGen.GenerateUrl(TransmitCallbackAction.Failed));

                request.AppReference = Convert.ToString(sumData.TradeSysTicket);
                request.Recipient    = sumData.CptySn;

                AddDocumentToRequest(assDoc, request);

                var email = new Emailer();
                if (transmitDestination.Type == TransmitDestinationType.EMAIL)
                {
                    request.SendMethod   = "EMAIL";
                    request.EmailAddress = request.FaxNumber;
                    request.FaxNumber    = "";
                    email.SendToFaxGateway(InboundSettings.EmailHost,
                                           InboundSettings.TransmissionGatewayEmailFromAddress,
                                           InboundSettings.TransmissionGatewayEmailToAddress,
                                           request,
                                           "");
                }
                else
                {
                    request.SendMethod = "FAX";
                    email.SendToFaxGateway(InboundSettings.EmailHost,
                                           InboundSettings.TransmissionGatewayEmailFromAddress,
                                           InboundSettings.TransmissionGatewayEmailToAddress,
                                           request,
                                           "");
                }
            }
        }