Exemple #1
0
        /* public async Task DeleteAsync(int id)
         * {
         *   var item = await _dataContext.Reconciliation.FindAsync(id);
         *   item.Status = Constants.RecordStatus.Deleted;
         *   _dataContext.Items.Update(item);
         *
         * }*/
        public async Task <TransactionBankDto> GetByBankId(int BankAccountId)

        {
            var linqstmt = await(from i in _dataContext.Transaction
                                 where i.BankAccountId == BankAccountId
                                 select new TransactionDetailDto
            {
                Id              = i.Id,
                BankAccountId   = i.BankAccountId,
                CreditAmount    = i.CreditAmount,
                DebitAmount     = i.DebitAmount,
                Description     = i.Description,
                TransactionDate = i.TransactionDate,
                TransactionId   = i.TransactionId,
                Status          = i.Status
            }).AsNoTracking().ToListAsync();
            var banks = new TransactionBankDto();

            var obj = _dataContext.BankAccounts.Where(x => x.Id == BankAccountId).FirstOrDefault();

            banks.BankName           = obj.BankName;
            banks.TransactionRecords = linqstmt;

            return(banks);

            //return await _dataContext.Transaction.Where(x => x.BankAccountId == BankAccountId)
            //     .AsNoTracking()
            //      .ToListAsync();
        }
        private static TransactionBankDto OfxSerializedToDto(OFX ofxSerialized)
        {
            var BANKACCTFROM = ofxSerialized?.BANKMSGSRSV1?.STMTTRNRS?.STMTRS?.BANKACCTFROM;
            var BANKTRANLIST = ofxSerialized?.BANKMSGSRSV1?.STMTTRNRS?.STMTRS?.BANKTRANLIST;

            if (BANKACCTFROM == null || BANKTRANLIST == null)
            {
                return(null);
            }

            var transaction = new TransactionBankDto
            {
                CheckTransaction    = BANKACCTFROM.ACCTID,
                IdBank              = BANKACCTFROM.BANKID,
                Type                = BANKACCTFROM.ACCTTYPE,
                InitDateTransaction = BANKTRANLIST.DTSTART,
                EndtDateTransaction = BANKTRANLIST.DTEND
            };

            if (BANKTRANLIST.STMTTRN != null)
            {
                transaction.Transactions = BANKTRANLIST.STMTTRN.Select(x => new TransactionBankDto
                {
                    Date        = ParseDate(x.DTPOSTED),
                    Description = x.MEMO,
                    Amount      = x.TRNAMT,
                    Type        = x.TRNTYPE
                }).ToList();
            }

            return(transaction);
        }
        public async Task <TransactionBankDto> GetByBankId(int BankAccountId)
        {
            var data = await _repository.GetByBankId(BankAccountId);

            var result = (data.TransactionRecords.GroupBy(l => l.TransactionDate, l => new { l.BankAccountId, l.TransactionDate, l.CreditAmount, l.DebitAmount, l.Description, l.Id })
                          .Select(g => new { GroupId = g.Key, Values = g.ToList() })).OrderByDescending(x => x.GroupId).Take(2).Select(x => x.Values).ToList();
            TransactionBankDto          obj     = new TransactionBankDto();
            List <TransactionDetailDto> bankdto = new List <TransactionDetailDto>();

            foreach (var item in result)
            {
                foreach (var item2 in item)
                {
                    var trsn = new TransactionDetailDto()
                    {
                        TransactionId   = item2.Id,
                        BankAccountId   = item2.BankAccountId,
                        CreditAmount    = item2.CreditAmount,
                        TransactionDate = item2.TransactionDate,
                        Description     = item2.Description,
                        DebitAmount     = item2.DebitAmount,
                    };
                    //bankdto.BankName = item2.Id.ToString();
                    //   obj.BankName = item2.BankName;
                    //    obj.TransactionRecords = trsn;
                    bankdto.Add(trsn);
                }
            }

            /* for(int i=0; i<result.Count-1; i++)
             * {
             *
             * }*/
            // obj.OrderBy(x => x.TransactionId).ToList();
            obj.TransactionRecords = bankdto;
            obj.BankName           = data.BankName;
            return(obj);
            //  return await _repository.GetByBankId(BankAccountId);
        }