public async Task UpdatePettyCashEntryDocumentUnit(PettyCashEntryDocumentInput input) { var pcEntryDocumnetunit = await _pcEntryDocumnetUnitRepository.GetAsync(input.AccountingDocumentId); Mapper.Map(input, pcEntryDocumnetunit); await _pettyCashEntryDocumnetManager.UpdateAsync(pcEntryDocumnetunit); if (!ReferenceEquals(input.PettyCashEntryDocumentDetailList, null)) { //Bulk CRUD operations of PettyCashEntryDocumentDetails foreach (var pcEntryDocumnetDetail in input.PettyCashEntryDocumentDetailList) { if (pcEntryDocumnetDetail.AccountingItemId == 0) { pcEntryDocumnetDetail.AccountingDocumentId = input.AccountingDocumentId; var pcEntryDocumentDetailUnit = pcEntryDocumnetDetail.MapTo <PettyCashEntryDocumentDetailUnit>(); await _pcEntryDocumnetDetailManager.CreateAsync(pcEntryDocumentDetailUnit); } else if (pcEntryDocumnetDetail.AccountingItemId > 0) { var pcEntryDocumentDetailUnit = await _pcEntryDocumnetDetailUnitRepository.GetAsync( pcEntryDocumnetDetail.AccountingItemId); Mapper.Map(pcEntryDocumnetDetail, pcEntryDocumentDetailUnit); await _pcEntryDocumnetDetailManager.UpdateAsync(pcEntryDocumentDetailUnit); } else { IdInput <long> idInput = new IdInput <long>() { Id = (pcEntryDocumnetDetail.AccountingItemId * (-1)) }; await _pcEntryDocumnetDetailManager.DeleteAsync(idInput); } } } await CurrentUnitOfWork.SaveChangesAsync(); }
public async Task <IdOutputDto <long> > CreatePettyCashEntryDocumentUnit(PettyCashEntryDocumentInput input) { var pcEntryDocumnetUnit = input.MapTo <PettyCashEntryDocumentUnit>(); IdOutputDto <long> response = new IdOutputDto <long> { Id = await _pettyCashEntryDocumnetManager.CreateAsync(pcEntryDocumnetUnit) }; //Null Checking of PettyCashEntryDocumentDetailList if (!ReferenceEquals(input.PettyCashEntryDocumentDetailList, null)) { //Bulk Insertion of PettyCashEntryDocumentDetail foreach (var pcEntryDocumentDetail in input.PettyCashEntryDocumentDetailList) { pcEntryDocumentDetail.AccountingDocumentId = response.Id; var pcEntryDocumentDetailUnit = pcEntryDocumentDetail.MapTo <PettyCashEntryDocumentDetailUnit>(); await _pcEntryDocumnetDetailManager.CreateAsync(pcEntryDocumentDetailUnit); } } await CurrentUnitOfWork.SaveChangesAsync(); return(response); }