예제 #1
0
        public static TransactionDTO GetDTO(this XmlTransactionModel xml)
        {
            TransactionDTO dto = new TransactionDTO(xml.Id,
                                                    xml.PaymentDetails.Amount,
                                                    xml.PaymentDetails.CurrencyCode,
                                                    xml.TransactionDate,
                                                    (TransactionDTOStatus)xml.Status);

            return(dto);
        }
예제 #2
0
        private void CallXmlReader(IFormFile file, ref List <string> errorMesages)
        {
            XmlTransactionModel xmlTransactionModel = xmlTransactionReader.Read(file);

            if (xmlTransactionModel != null)
            {
                foreach (XmlTransaction transaction in xmlTransactionModel.Transactions)
                {
                    errorMesages.AddRange(xmlValidator.Validate(transaction));
                }

                if (errorMesages.Count == 0)
                {
                    IEnumerable <TransactionModel> transactionModels = xmlTransactionModel.MapToModel();
                    transactionRepository.AddRange(transactionModels);
                }
            }
        }
예제 #3
0
        public static IEnumerable <TransactionModel> MapToModel(this XmlTransactionModel item)
        {
            var models           = new List <TransactionModel>();
            var statusDictionary = new Dictionary <string, TransactionStatus>();

            statusDictionary.Add("Approved", TransactionStatus.Approved);
            statusDictionary.Add("Rejected", TransactionStatus.Rejected);
            statusDictionary.Add("Done", TransactionStatus.Done);

            foreach (XmlTransaction transaction in item.Transactions)
            {
                models.Add(new TransactionModel
                {
                    TransactionId   = transaction.id,
                    Amount          = decimal.Parse(transaction.PaymentDetails.Amount),
                    CurrencyCode    = transaction.PaymentDetails.CurrencyCode,
                    TransactionDate = DateTime.Parse(transaction.TransactionDate),
                    Status          = statusDictionary[transaction.Status]
                });
            }

            return(models);
        }
예제 #4
0
 public TryAsync <List <Transaction> > MapTransaction(XmlTransactionModel model)
 {
     return(TryAsync(() => _mapper.Map <List <Transaction> >(model.Transactions).AsTask()));
 }