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); }
public async Task <List <T> > Get() => await _dbContext.Set <T>() .ToListAsync();
public async Task <int> Remove <T>(Guid id) where T : BaseEntity { _dbContext.Remove(_dbContext.Set <T>().Find(id)); return(dbContextTransaction == null ? await CommitTrans() : 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)); }
public DbSet <T> Set <T>() where T : class => _appContext.Set <T>();