Ejemplo n.º 1
0
        public async Task <IEnumerable <AmountTransationalDto> > Process(List <IFormFile> files)
        {
            if (files == null || files.Count == 0)
            {
                return(null);
            }

            _context.Set <Conciliation>().RemoveRange(_context.Set <Conciliation>().ToList());

            IEnumerable <Conciliation> conciliations = await _ofxParserService.Parse(files);

            var conciliationsDto = conciliations.GroupBy(s => s.DatePosted).Select(s => new AmountTransationalDto
            {
                DatePosted                 = s.Key,
                TransactionAmount          = Math.Round(s.Sum(d => d.TransactionAmount), 2),
                OperationDescription       = s.FirstOrDefault().TransactionDescription.Trim(),
                TransactionType            = s.FirstOrDefault().TransactionType,
                TransactionTypeDescription = s.FirstOrDefault().TransactionType.Equals(TransactionTypeEnum.CREDIT) ? "Crédito" : "Débito"
            })
                                   .OrderBy(_ => _.DatePosted);

            await _context.AddRangeAsync(conciliations);

            await _context.SaveChangesAsync();

            return(conciliationsDto);
        }
Ejemplo n.º 2
0
        public async Task <IEnumerable <AmountTransationalDto> > Process(List <IFormFile> files)
        {
            if (files == null || files.Count == 0)
            {
                return(null);
            }

            IEnumerable <Conciliation> conciliations = await _ofxParserService.Parse(files);

            var conciliationsDto = conciliations.GroupBy(s => s.DatePosted).Select(s => new AmountTransationalDto
            {
                DatePosted           = s.Key,
                TransactionAmount    = Math.Round(s.Sum(d => d.TransactionAmount), 2),
                OperationDescription = s.FirstOrDefault().TransactionDescription.Trim(),
                TransactionType      = s.FirstOrDefault().TransactionType
            })
                                   .OrderBy(_ => _.DatePosted);

            return(conciliationsDto);
        }