/// <summary> /// Get DivisionsList /// </summary> /// <returns></returns> public async Task <List <DivisionCacheItem> > GetDivisionList(AutoSearchInput input) { var cacheItem = await _divisioncache.GetDivisionCacheItemAsync( CacheKeyStores.CalculateCacheKey(CacheKeyStores.DivisionKey, Convert.ToInt32(_customAppSession.TenantId))); return(cacheItem.ToList().Where(p => p.IsDivision == true) .WhereIf(!string.IsNullOrEmpty(input.Query), p => p.JobNumber.EmptyIfNull().ToUpper().Contains(input.Query.ToUpper()) || p.Caption.EmptyIfNull().ToUpper().Contains(input.Query.ToUpper())).ToList()); }
/// <summary> /// Checking DuplicateRecords /// </summary> /// <param name="divisionsList"></param> /// <param name="coaId"></param> /// <returns></returns> private async Task <List <JobUnitDto> > ValidateDuplicateRecords(List <CreateJobUnitInput> divisionsList, int coaId) { var divisionNumberList = string.Join(",", divisionsList.Select(p => p.JobNumber).ToArray()); //Geting all divisions from cache var duplicatedivisions = await _divisioncache.GetDivisionCacheItemAsync( CacheKeyStores.CalculateCacheKey(CacheKeyStores.DivisionKey, Convert.ToInt32(AbpSession.GetTenantId()))); var duplicatedivisionItems = duplicatedivisions.Where(p => p.IsDivision == true).ToList(); //get duplicate division list var duplicatedivisionList = duplicatedivisionItems.Where( p => divisionNumberList.Contains(p.JobNumber)).ToList(); //duplicatedivisionNumbers of divisionList var duplicatedivisionsdivisionNumberList = (from p in divisionsList join p2 in duplicatedivisionList on p.JobNumber equals p2.JobNumber select new { division = p, ErrorMesage = L("DuplicatedivisionNumber") + p.JobNumber }).ToList(); //invalid divisionList var errordivisions = duplicatedivisionsdivisionNumberList.Where(u => u.ErrorMesage.Trim().Length > 0).ToList(); return(errordivisions.Select(division => new JobUnitDto { JobNumber = division.division.JobNumber, Caption = division.division.Caption, RollupCenterId = division.division.RollupCenterId, IsCorporateDefault = division.division.IsCorporateDefault, ChartOfAccountId = coaId, RollupAccountId = division.division.RollupAccountId, TypeOfCurrencyId = division.division.TypeOfCurrencyId, RollupJobId = division.division.RollupJobId, TypeOfJobStatusId = division.division.TypeOfJobStatusId, TypeOfBidSoftwareId = division.division.TypeOfBidSoftwareId, IsActive = division.division.IsActive, IsApproved = division.division.IsApproved, IsICTDivision = division.division.IsICTDivision, TypeofProjectId = division.division.TypeofProjectId, TaxRecoveryId = division.division.TaxRecoveryId, TypeOfCurrency = division.division.TypeOfCurrency, ErrorMessage = division.ErrorMesage.TrimEnd(',').TrimStart(',') }).ToList()); }