/// <summary> /// /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task UpdateCreditCardEntryDocumentUnit(CreditCardEntryDocumentInputUnit input) { var creditEntryTransactions = await _creditCardUnitRepository.GetAsync(input.AccountingDocumentId); Mapper.Map(input, creditEntryTransactions); await _chargeEntryDocumentUnitManager.UpdateAsync(creditEntryTransactions); if (!ReferenceEquals(input.CreditCardEntryDetailList, null)) { //Bulk CRUD operations of CreditCardEntryDetailList foreach (var creditCardEntryDocumentDetail in input.CreditCardEntryDetailList) { if (creditCardEntryDocumentDetail.AccountingItemId == 0) { creditCardEntryDocumentDetail.AccountingDocumentId = input.AccountingDocumentId; var creditCardEntryDocumentDetailUnit = creditCardEntryDocumentDetail.MapTo <ChargeEntryDocumentDetailUnit>(); await _chargeEntryDocumentDetailUnitManager.CreateAsync(creditCardEntryDocumentDetailUnit); } else if (creditCardEntryDocumentDetail.AccountingItemId > 0) { var creditcardDocumentDetailUnit = await _creditCardDetailUnitRepository.GetAsync( creditCardEntryDocumentDetail.AccountingItemId); Mapper.Map(creditCardEntryDocumentDetail, creditcardDocumentDetailUnit); await _chargeEntryDocumentDetailUnitManager.UpdateAsync(creditcardDocumentDetailUnit); } else { IdInput <long> idInput = new IdInput <long>() { Id = (creditCardEntryDocumentDetail.AccountingItemId * (-1)) }; await _chargeEntryDocumentDetailUnitManager.DeleteAsync(idInput); } } } await CurrentUnitOfWork.SaveChangesAsync(); }
/// <summary> /// /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <IdOutputDto <long> > CreateCreditCardEntryDocumentUnit(CreditCardEntryDocumentInputUnit input) { var creditEntryTransactions = input.MapTo <ChargeEntryDocumentUnit>(); IdOutputDto <long> response = new IdOutputDto <long> { Id = await _chargeEntryDocumentUnitManager.CreateAsync(creditEntryTransactions) }; //Null Checking of CreditCardEntryDetailList if (!ReferenceEquals(input.CreditCardEntryDetailList, null)) { //Bulk Insertion of creditCardEntryDocumentDetail foreach (var creditCardEntryDocumentDetail in input.CreditCardEntryDetailList) { creditCardEntryDocumentDetail.AccountingDocumentId = response.Id; var invoiceEntryDocumentDetailUnit = creditCardEntryDocumentDetail.MapTo <ChargeEntryDocumentDetailUnit>(); await _chargeEntryDocumentDetailUnitManager.CreateAsync(invoiceEntryDocumentDetailUnit); } } await CurrentUnitOfWork.SaveChangesAsync(); return(response); }