コード例 #1
0
        public async Task <PaidPackage> Update(PaidPackage paidPackage, CancellationToken cancellationToken)
        {
            var paidPackagePrice       = _context.PaidPackagePrices.AsNoTracking().ToList();
            var paidPackagePricesToAdd = new List <PaidPackagePrice>(); // List dùng để thêm mới nếu chưa tồn tại
            var listPaidPackagePrices  = paidPackage.paidPackagePrices.ToList();

            foreach (var item in listPaidPackagePrices)
            {
                // Kiểm tra tồn tại trong DB
                var itemExist = paidPackagePrice.FirstOrDefault(x => x.Period == item.Period && x.PaidPackageId == paidPackage.Id);
                if (itemExist == null)
                {
                    item.PaidPackageId = paidPackage.Id;
                    paidPackagePricesToAdd.Add(item);
                    paidPackage.paidPackagePrices.Remove(item);
                }
                else
                {
                    item.Id = itemExist.Id;
                }
            }
            _context.PaidPackages.Update(paidPackage);
            await _context.PaidPackagePrices.AddRangeAsync(paidPackagePricesToAdd, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(paidPackage);
        }
コード例 #2
0
        public async Task <PaidPackage> Add(PaidPackage paidPackage, CancellationToken cancellationToken)
        {
            await _context.PaidPackages.AddAsync(paidPackage, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(paidPackage);
        }
コード例 #3
0
 public Task Delete(PaidPackage paidPackage, CancellationToken cancellationToken)
 {
     _context.PaidPackages.Remove(paidPackage);
     _context.SaveChanges();
     return(Task.CompletedTask);
 }