Exemplo n.º 1
0
        public ActionResult CreateSettlement([Bind("Id", "Balance")] SettlementDTO settlementDTO)
        {
            try
            {
                BBSettlement newSettlement = new BBSettlement();
                if (settlementDTO != null)
                {
                    newSettlement = new BBSettlement
                    {
                        Id          = settlementDTO.Id,
                        Balance     = settlementDTO.Balance,
                        EntityState = EntityState.Added
                    };

                    _businessLayer.AddBBSettlement(newSettlement);
                }
                return(Ok(newSettlement));
            }

            catch (Exception ex)
            {
                //return new JsonResult(new { HttpStatusCode = NotFound(HttpStatusCode.BadRequest), ex.Message });
                throw new Exception(ex.Message);
            }
        }
        public string Post([FromBody] string xml)
        {
            // creating object of CultureInfo
            CultureInfo cultures = new CultureInfo("en-US");

            try
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml);

                #region data fetched from xml
                string amount, senderBIC, receiverBIC, receiverAccNo = string.Empty;
                //txnId = doc.GetElementsByTagName("TxId").Item(0).InnerText;
                amount      = doc.GetElementsByTagName("IntrBkSttlmAmt").Item(0).InnerText;
                senderBIC   = doc.GetElementsByTagName("BICFI").Item(0).InnerText;
                receiverBIC = doc.GetElementsByTagName("BICFI").Item(1).InnerText;
                //senderAccNo = doc.GetElementsByTagName("Id").Item(0).InnerText;
                //receiverAccNo = doc.GetElementsByTagName("Id").Item(2).InnerText;
                #endregion

                #region get data from DB
                //var transaction = businessLayer.GetAllTransactions().Where(x => x.TransactionId == txnId).FirstOrDefault();
                //var sender = businessLayer.GetAllBankUsers().Where(x => x.Id == transaction.SenderId).FirstOrDefault();
                //var recevier = businessLayer.GetAllBankUsers().Where(x => x.Id == transaction.ReceiverId).FirstOrDefault();
                //var senderName = businessLayer.GetAllTransactions().SingleOrDefault(m => m.TransactionId == txnId).Sender.AccountName;
                //var receiverName = businessLayer.GetAllTransactions().SingleOrDefault(m => m.TransactionId == txnId).Receiver.AccountName;
                //var senderName = sender.AccountName;
                //var receiverName = recevier.AccountName;

                #endregion

                var bank       = _businessLayer.GetBankBySwiftBic(senderBIC);
                var senderName = bank.FinancialInstitution.InstitutionName;
                //var receiverName = "";
                string txnId = "";
                Double.TryParse(amount, NumberStyles.Any, cultures, out double balance);
                BBSettlement settlement = new BBSettlement
                {
                    Id          = bank.Id,
                    Balance     = balance,
                    ModifiedOn  = DateTime.Now,
                    EntityState = EntityState.Modified
                };
                _businessLayer.UpdateBBSettlement(settlement);

                var transactionID = Guid.NewGuid().ToString();
                //ISOComposer composer = new ISOComposer();
                //var pacs002xml = composer.GetDataForPacs002Single(senderBIC, receiverBIC, senderName, receiverName, txnId, amount);
                var pacs002xml = ISOComposer.GetDataForPacs002Single(senderBIC, txnId, amount, "pacs.009.001.04");

                return(pacs002xml.InnerXml);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
                //return ex.Message;
            }
        }