// GET api/<controller>
        /// <summary>
        /// (obsolete) Get Smart Account Depended by the Features of Payment
        /// </summary>
        /// <param name="paymentB1Id">Id of Payment in Business One</param>
        /// <param name="companyId">Leave empty</param>
        /// <param name="companyCode">Id of Customers or Supplier in Business One</param>
        /// <param name="bank">Bank Information</param>
        /// <param name="amount">Amount of Payment</param>
        /// <param name="reference">Remark</param>
        /// <returns>JSON format</returns>
        /// <exception cref="Exception"></exception>
        public AlgorithmModels.Result Get(string paymentB1Id, int companyId, string companyCode,
                                          string bank, double amount, string reference)
        {
            try
            {
                var param = new AlgorithmModels.Parameter
                {
                    PaymentB1Id = paymentB1Id,
                    Company     = null,
                    BankCode    = string.Empty,
                    BankName    = bank,
                    Reference   = reference,
                    Amount      = amount
                };

                if (companyId <= 0 && string.IsNullOrEmpty(companyCode))
                {
                    throw new Exception("Company Information is required");
                }

                if (companyId <= 0 && !string.IsNullOrEmpty(companyCode))
                {
                    if (Company.Cache.CompanyListActive.Exists(x => x.CompanyCode.Equals(companyCode)))
                    {
                        param.Company = Company.Cache.CompanyListActive
                                        .Find(x => x.CompanyCode.Equals(param.Company.CompanyCode)).MapTo <Company, CompanyDto>();
                    }
                    else
                    {
                        param.Company = null;
                    }
                }
                else
                {
                    param.Company = Company.Cache.Load(companyId).MapTo <Company, CompanyDto>();
                }

                var result = AlgorithmV1.SmartMatching(param);

                return(result);
            }
            catch (Exception e)
            {
                return(new AlgorithmModels.Result
                {
                    ResultAccount = null,
                    Probability = 0,
                    ResultType = AlgorithmModels.ResultTypeEnum.Exception,
                    Remark = e.Message
                });
            }
        }
Exemplo n.º 2
0
        public void ApiPostTest()
        {
            var request = new
            {
                Amount      = 4000,
                Bank        = "boc.usd",
                CompanyCode = "CP100120",
                CompanyId   = -1,
                PaymentB1Id = "ab2306345e6f78",
                Reference   = "a"
            };

            var param = new AlgorithmModels.Parameter
            {
                PaymentB1Id = request.PaymentB1Id,
                Company     = null,
                BankCode    = string.Empty,
                BankName    = request.Bank,
                Reference   = request.Reference,
                Amount      = request.Amount
            };

            if (request.CompanyId <= 0 && string.IsNullOrEmpty(request.CompanyCode))
            {
                throw new Exception("Company Information is required");
            }

            if (request.CompanyId <= 0 && !string.IsNullOrEmpty(request.CompanyCode))
            {
                if (Company.Cache.CompanyListActive.Exists(x => x.CompanyCode.Equals(request.CompanyCode)))
                {
                    param.Company = Company.Cache.CompanyListActive
                                    .Find(x => x.CompanyCode.Equals(request.CompanyCode)).MapTo <Company, CompanyDto>();
                }
                else
                {
                    param.Company = null;
                }
            }
            else
            {
                param.Company = Company.Cache.Load(request.CompanyId).MapTo <Company, CompanyDto>();
            }

            var result = AlgorithmV1.SmartMatching(param);

            Assert.IsNotNull(result);
        }