Ejemplo n.º 1
0
        public async Task <PaymentEntity> Get(int id)
        {
            var entity = await _dbContext.Set <PaymentEntity>()
                         .Where(payment => payment.Id == id)
                         .FirstOrDefaultAsync();

            if (entity == null)
            {
                return(null);
            }

            entity.PaymentInstallments = await _dbContext.Set <PaymentInstallmentEntity>()
                                         .Where(x => x.PaymentId == id)
                                         .ToListAsync();

            return(entity);
        }
Ejemplo n.º 2
0
 public async Task <List <T> > Get()
 => await _dbContext.Set <T>()
 .ToListAsync();
Ejemplo n.º 3
0
 public async Task <int> Remove <T>(Guid id) where T : BaseEntity
 {
     _dbContext.Remove(_dbContext.Set <T>().Find(id));
     return(dbContextTransaction == null ? await CommitTrans() : 0);
 }
Ejemplo n.º 4
0
        public async Task <AnticipationResult> Create(List <int> paymentIds, DateTime solicitationDate)
        {
            // Check if there's a open solicitation
            var openAnalysis = await _dbContext.Set <AnticipationAnalysis>()
                               .Where(x => x.EndDate == null)
                               .FirstOrDefaultAsync();

            if (openAnalysis != null)
            {
                return(_resultService.GenerateFailedResult("Cannot open solicitation without finilizing the current one.", true));
            }

            var payments = await _dbContext.Set <PaymentEntity>()
                           .Where(x => paymentIds.Contains(x.Id) && x.AnticipationId == null && x.Approved == true)
                           .ToListAsync();

            if (payments.Count() == 0)
            {
                return(_resultService.GenerateFailedResult("None of the solicited payments are available for anticipation.", true));
            }


            var entity = new AnticipationEntity
            {
                SolicitationDate = solicitationDate,
                SolicitedValue   = 0,
            };

            await _dbContext.AddAsync(entity);

            await _dbContext.SaveChangesAsync();

            // sets the payment.solicitationId fields to the current anticipation id
            // needs to be done after the SaveChangesAsync so the id is set.
            foreach (var payment in payments)
            {
                payment.AnticipationId = entity.Id;
                entity.SolicitedValue += payment.LiquidValue * TaxRate;
            }

            var analysis = new AnticipationAnalysis
            {
                AnticipationId = entity.Id
            };

            await _dbContext.AddAsync(analysis);

            await _dbContext.SaveChangesAsync();

            await FillInternalEntities(entity);

            return(_resultService.GenerateResult(entity));
        }
Ejemplo n.º 5
0
 public DbSet <T> Set <T>() where T : class => _appContext.Set <T>();