public HttpResponseMessage PayOpenInvoicesJob(PayOpenInvoicesRequest invoiceRequest)
        {
            XmlToModelConverter xmlToModelConverter = new XmlToModelConverter();
            string request = xmlToModelConverter.Serialize <PayOpenInvoicesRequest>(invoiceRequest);
            //string request = CreatePayInvoiceRequest(invoiceRequest);
            GetOutstandingInvoiceParameter parameter = new GetOutstandingInvoiceParameter();

            parameter.TransactionName = "PayOpenInvoices";
            var response = this.PostXml(parameter, request);

            return(response);
        }
        public bool PayOpenInvoicesRequest(PayOpenInvoicesRequest invoiceRequest, string invoiceNumber)
        {
            XmlToModelConverter xmlToModelConverter = new XmlToModelConverter();
            string request = xmlToModelConverter.Serialize <PayOpenInvoicesRequest>(invoiceRequest);

            LogHelper.For(this).Info(request, "InforRequest");
            //string request = CreatePayInvoiceRequest(invoiceRequest);
            GetOutstandingInvoiceParameter parameter = new GetOutstandingInvoiceParameter();
            Boolean status;

            parameter.TransactionName = "PayOpenInvoices";
            var response = this.PostXml(parameter, request);

            if (!response.IsSuccessStatusCode)
            {
                string reason = response.ReasonPhrase + " : " + response.StatusCode + " : " + invoiceRequest.CreditCard.CCAuthorizationNumber + " Infor payment failed for " + invoiceNumber;
                LogHelper.For(this).Info(reason, "Failed InforResponse");
                status = false;
                InvoiceTransactionHandler handler = new InvoiceTransactionHandler(this.unitOfWork);
                handler.CreateInvoiceTransaction(invoiceRequest, reason, status);
                //throw error to frontend
                return(false);
            }

            XmlDocument xmlDocument    = this.xmlHelper.CreateXmlDocument(response.Content.ReadAsStringAsync().Result);
            string      responseString = JsonConvert.SerializeXmlNode(xmlDocument);

            if (responseString.ContainsIgnoreCase(customSettings.InforSuccessMessage))
            {
                LogHelper.For(this).Info(response.StatusCode + " : " + invoiceRequest.CreditCard.CCAuthorizationNumber + " Infor payment successful for " + invoiceNumber, "successful InforResponse");

                status = true;
                InvoiceTransactionHandler handler = new InvoiceTransactionHandler(this.unitOfWork);
                handler.CreateInvoiceTransaction(invoiceRequest, responseString, status);
                return(true);
            }
            else
            {
                //log in appl log and db for failed,invoice,amount,
                LogHelper.For(this).Info(response.StatusCode + " : " + invoiceRequest.CreditCard.CCAuthorizationNumber + " Infor payment failed for " + invoiceNumber, "Failed InforResponse");
                status = false;
                InvoiceTransactionHandler handler = new InvoiceTransactionHandler(this.unitOfWork);
                handler.CreateInvoiceTransaction(invoiceRequest, responseString, status);
                //throw error to frontend
                return(false);
            }
        }
        public HttpResponseMessage PostXml(GetOutstandingInvoiceParameter parameter, string xmlRequest)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(customSettings.InforUrl);
                client.DefaultRequestHeaders.Accept.Clear();

                var values = new Dictionary <string, string>
                {
                    { "Data", xmlRequest },
                    { "OutputType", customSettings.InforUrlOutputTypeParameter },
                    { "InputType", customSettings.InforUrlInputTypeParameter },
                    { "TransactionName", parameter.TransactionName },
                    { "SubscriberID", customSettings.InforSubscriberID },
                    { "SubscriberPassword", customSettings.InforSubscriberPassword }
                };

                var content = new FormUrlEncodedContent(values);
                HttpResponseMessage response = client.PostAsync(client.BaseAddress, content).Result;
                return(response);
            }
        }
示例#4
0
        public OutstandingOrderModel Post([FromBody] GetOutstandingOrderDto getOrderDto, [FromUri] GetOutstandingInvoiceParameter parameter)
        {
            OutstandingOrderModel openinvoices        = null;
            XmlToModelConverter   xmlToModelConverter = new XmlToModelConverter();

            xmlRequest = this.OutstandingInvoiceService.CreateOrderRequestXml(getOrderDto, parameter);
            var response = this.OutstandingInvoiceService.PostXml(parameter, xmlRequest);

            if (response.IsSuccessStatusCode)
            {
                openinvoices = xmlToModelConverter.Deserialize <OutstandingOrderModel>(response.Content.ReadAsStringAsync().Result);
            }

            return(openinvoices);
        }
示例#5
0
        public dynamic Post([FromBody] GetOutstandingInvoicesDto getOutstandingInvoicesDto, [FromUri] GetOutstandingInvoiceParameter parameter)
        {
            XmlToModelConverter xmlToModelConverter = new XmlToModelConverter();

            xmlRequest = this.OutstandingInvoiceService.CreateRequestXml(getOutstandingInvoicesDto, parameter);
            var response = this.OutstandingInvoiceService.PostXml(parameter, xmlRequest);

            if (response.IsSuccessStatusCode)
            {
                if (parameter.TransactionName.Equals("ARSummary"))
                {
                    ARSummary openinvoices = new ARSummary();
                    openinvoices = xmlToModelConverter.Deserialize <ARSummary>(response.Content.ReadAsStringAsync().Result);
                    return(openinvoices);
                }
                else if (parameter.TransactionName.Equals("AROpenInvoices"))
                {
                    AROpenInvoicesResult openinvoicesResult = new AROpenInvoicesResult();
                    openinvoicesResult.AROpenInvoices = xmlToModelConverter.Deserialize <AROpenInvoices>(response.Content.ReadAsStringAsync().Result);
                    openinvoicesResult.Pagination     = new PagingModel();
                    IQueryable <Invoice> invoiceQuery = openinvoicesResult.AROpenInvoices.Invoice.AsQueryable();

                    this.OutstandingInvoiceService.GetShiptos(invoiceQuery, getOutstandingInvoicesDto.CustomerNumber);
                    invoiceQuery = string.IsNullOrWhiteSpace(parameter.Sort) ? invoiceQuery.OrderBy <Invoice>("InvoiceDate") : invoiceQuery.OrderBy <Invoice>(parameter.Sort);

                    var pagedResult = this.OutstandingInvoiceService.ApplyPaging <Invoice>((PagingParameterBase)parameter, (PagingResultBase)openinvoicesResult.Pagination, invoiceQuery).ToList();

                    // Frontend Model
                    AROpenInvoicesResult openinvoices = new AROpenInvoicesResult();
                    openinvoices.AROpenInvoices            = new AROpenInvoices();
                    openinvoices.AROpenInvoices            = openinvoicesResult.AROpenInvoices;
                    openinvoices.PagedOpenInvoices         = new AROpenInvoices();
                    openinvoices.PagedOpenInvoices.Invoice = pagedResult.ToList <Invoice>();
                    openinvoices.Pagination = new PagingModel(openinvoicesResult.Pagination.Page, openinvoicesResult.Pagination.PageSize, openinvoicesResult.Pagination.DefaultPageSize, openinvoicesResult.Pagination.TotalCount);

                    if (openinvoicesResult.Pagination.Page > 1)
                    {
                        openinvoices.Pagination.PrevPageUri = this.OutstandingInvoiceService.GetLink(openinvoicesResult.Pagination, this.Request, openinvoicesResult.Pagination.Page - 1);
                    }
                    if (openinvoicesResult.Pagination.Page < openinvoicesResult.Pagination.TotalPages)
                    {
                        openinvoices.Pagination.NextPageUri = this.OutstandingInvoiceService.GetLink(openinvoicesResult.Pagination, this.Request, openinvoicesResult.Pagination.Page + 1);
                    }

                    return(openinvoices);
                }
                else
                {
                    ARInvoiceDetail openinvoices = new ARInvoiceDetail();
                    openinvoices = xmlToModelConverter.Deserialize <ARInvoiceDetail>(response.Content.ReadAsStringAsync().Result);
                    return(openinvoices);
                }
            }

            return(response);
        }
        public string CreateRequestXml(GetOutstandingInvoicesDto getOutstandingInvoicesDto, GetOutstandingInvoiceParameter parameter)
        {
            if (parameter.TransactionName.Equals("AROpenInvoices"))
            {
                xmlRequest = "<request name=" + '"' + parameter.TransactionName + '"' + "> <CompanyNumber>" + customSettings.CompanyNameIdentifier + "</CompanyNumber> <CustomerNumber>" + getOutstandingInvoicesDto.CustomerNumber + "</CustomerNumber> <InvoiceNumberInq>" + getOutstandingInvoicesDto.InvoiceNumberInq + "</InvoiceNumberInq> <ToInvoiceNumber>" + getOutstandingInvoicesDto.ToInvoiceNumber + "</ToInvoiceNumber> <MaxInvoices>" + customSettings.InforMaxInvoices + "</MaxInvoices> <FromInvDate>" + getOutstandingInvoicesDto.FromInvDate + "</FromInvDate> <ToInvDate>" + getOutstandingInvoicesDto.ToInvDate + "</ToInvDate> <FromAgeDate>" + getOutstandingInvoicesDto.FromAgeDate + "</FromAgeDate> <ToAgeDate>" + getOutstandingInvoicesDto.ToAgeDate + "</ToAgeDate> <FromInvAmount>" + getOutstandingInvoicesDto.FromInvAmount + "</FromInvAmount> <ToInvAmount>" + getOutstandingInvoicesDto.ToInvAmount + "</ToInvAmount> </request> ";
            }
            else if (parameter.TransactionName.Equals("ARInvoiceDetail"))
            {
                xmlRequest = "<request name=" + '"' + parameter.TransactionName + '"' + "> <CompanyNumber>" + customSettings.CompanyNameIdentifier + "</CompanyNumber> <CustomerNumber>" + getOutstandingInvoicesDto.CustomerNumber + "</CustomerNumber> <InvoiceType>" + getOutstandingInvoicesDto.InvoiceType + "</InvoiceType> <InvoiceNumber>" + getOutstandingInvoicesDto.InvoiceNumberInq + "</InvoiceNumber> <Flag>" + getOutstandingInvoicesDto.Flag + "</Flag> </request>";
            }
            else
            {
                xmlRequest = "<request name=" + '"' + parameter.TransactionName + '"' + "> <CompanyNumber>" + customSettings.CompanyNameIdentifier + "</CompanyNumber> <CustomerNumber>" + getOutstandingInvoicesDto.CustomerNumber + "</CustomerNumber> </request>";
            }

            return(xmlRequest);
        }
        public string CreateOrderRequestXml(GetOutstandingOrderDto getOutstandingOrderDto, GetOutstandingInvoiceParameter parameter)
        {
            xmlRequest = "<request name=" + '"' + parameter.TransactionName + '"' + "> <GetOrderInfo>" + getOutstandingOrderDto.GetOrderInfo + "</GetOrderInfo> <CompanyNumber>" + customSettings.CompanyNameIdentifier + "</CompanyNumber> <CustomerNumber>" + getOutstandingOrderDto.CustomerNumber + "</CustomerNumber> <LookupType>" + getOutstandingOrderDto.LookupType + "</LookupType> <Source>" + getOutstandingOrderDto.Source + "</Source> <FromEntryDate>" + getOutstandingOrderDto.FromEntryDate + "</FromEntryDate> <ToEntryDate>" + getOutstandingOrderDto.EntryDate + "</ToEntryDate> <OrderNumber>" + getOutstandingOrderDto.OrderNumber + "</OrderNumber> <OrderGenerationNumber>" + getOutstandingOrderDto.OrderGenerationNumber + "</OrderGenerationNumber> <InvoiceNumber>" + getOutstandingOrderDto.InvoiceNumber + "</InvoiceNumber> <CustomerPurchaseOrderNumber>" + getOutstandingOrderDto.CustomerPurchaseOrderNumber + "</CustomerPurchaseOrderNumber> <ParentOrderNumber>" + getOutstandingOrderDto.ParentOrderNumber + "</ParentOrderNumber> <GuestFlag>" + getOutstandingOrderDto.GuestFlag + "</GuestFlag> <EmailAddress>" + getOutstandingOrderDto.EmailAddress + "</EmailAddress> <HistorySequenceNumber>" + getOutstandingOrderDto.HistorySequenceNumber + "</HistorySequenceNumber> <EntryDateCentury>" + getOutstandingOrderDto.EntryDateCentury + "</EntryDateCentury> <EntryDate>" + getOutstandingOrderDto.EntryDate + "</EntryDate> <IncludeHistory>" + getOutstandingOrderDto.IncludeHistory + "</IncludeHistory> <CreditCardKeySeq>" + getOutstandingOrderDto.CreditCardKeySeq + "</CreditCardKeySeq> </request>";

            return(xmlRequest);
        }