/// <summary> /// Inserting BulkAccount /// </summary> /// <param name="listAccountUnitDtos"></param> /// <returns></returns> public async Task <List <AccountUnitDto> > BulkAccountInsert(CreateAccountListInput listAccountUnitDtos) { List <AccountUnit> accountList = new List <AccountUnit>(); var createAccountList = listAccountUnitDtos.AccountList.Select((item, index) => { item.ExcelRowNumber = index; return(item); }).ToList(); //ErrorAccountList var erroredAccountList = await ValidateDuplicateRecords(createAccountList); //ValidAccountList var accounts = listAccountUnitDtos.AccountList.Where(p => erroredAccountList.All(p2 => p2.AccountNumber != p.AccountNumber)).ToList(); int accountCode = Convert.ToInt32(await _accountUnitManager.GetNextChildCodeAsync(parentId: null, coaId: listAccountUnitDtos.AccountList[0].ChartOfAccountId)); foreach (var accountUnit in accounts) { accountUnit.ParentId = accountUnit.ParentId != 0 ? accountUnit.ParentId : null; var account = accountUnit.MapTo <AccountUnit>(); account.TenantId = AbpSession.GetTenantId(); account.CreatorUserId = AbpSession.GetUserId(); account.Code = AccountUnit.CreateCode(accountCode); accountList.Add(account); accountCode++; } if (accountList.Count > 0) { await _customAccountRepository.BulkInsertAccountUnits(accountList : accountList); _cacheManager.GetCacheItem(CacheStoreName: CacheKeyStores.CacheAccountStore).Remove(CacheKeyStores.CalculateCacheKey(CacheKeyStores.AccountKey, Convert.ToInt32(AbpSession.GetTenantId()))); } return(erroredAccountList); }