/// <summary> /// Get Vendors List by using vendor Numbers /// </summary> /// <param name="input"></param> /// <returns></returns> private async Task <List <NameValueDto> > GetVendorsListByNames(NameValueInputList input) { var vendorsList = await _vendorCache.GetVendorsCacheItemAsync(CacheKeyStores.CalculateCacheKey(CacheKeyStores.VendorKey, Convert.ToInt32(_customAppSession.TenantId))); var strVendorNames = input.NameValueList.Select(u => u.Name).ToArray(); var vendorFirstNameList = vendorsList.ToList().Where(u => strVendorNames.Contains(u.FirstName)) .Select(u => new NameValueDto() { Name = u.FirstName, Value = u.VendorId.ToString() }).ToList(); var vendorLastNameList = vendorsList.ToList().Where(u => strVendorNames.Contains(u.LastName)) .Select(u => new NameValueDto() { Name = u.LastName, Value = u.VendorId.ToString() }).ToList(); var vendorList = vendorFirstNameList.Union(vendorLastNameList).DistinctBy(u => u.Name); var result = (from vendorNames in input.NameValueList join vendors in vendorList on vendorNames.Name equals vendors.Name select new NameValueDto() { Name = vendorNames.Name, Value = vendors?.Value ?? "" }).ToList(); return(result); }
/// <summary> /// Get Typeof1099T4 List by using Numbers /// </summary> /// <param name="input"></param> /// <returns></returns> private List <NameValueDto> GetTypeof1099T4ListByNames(NameValueInputList input) { var result = (from value in input.NameValueList join typeof1099T4 in EnumList.GetTypeof1099T4List() on value.Name equals typeof1099T4.Name select new NameValueDto() { Name = value.Name, Value = typeof1099T4?.Value ?? "" }).ToList(); return(result); }
/// <summary> /// Get accounts List by using Account Numbers /// </summary> /// <param name="input"></param> /// <returns></returns> private async Task <List <NameValueDto> > GetAccountsListByNames(NameValueInputList input) { var accountList = await _accountCache.GetAccountCacheItemAsync( CacheKeyStores.CalculateCacheKey(CacheKeyStores.AccountKey, Convert.ToInt32(_customAppSession.TenantId))); var result = (from accNames in input.NameValueList join account in accountList.ToList() on accNames.Name equals account.AccountNumber select new NameValueDto() { Name = accNames.Name, Value = account?.AccountId.ToString() ?? "" }).ToList(); return(result); }
/// <summary> /// Get Jobs or Divisions List by using Job Numbers /// </summary> /// <param name="input"></param> /// <returns></returns> private async Task <List <NameValueDto> > GetJobOrDivisionListByNames(NameValueInputList input) { var jobOrDivisionList = await _divisionCache.GetDivisionCacheItemAsync( CacheKeyStores.CalculateCacheKey(CacheKeyStores.DivisionKey, Convert.ToInt32(_customAppSession.TenantId))); var result = (from jobNames in input.NameValueList join jobOrdivision in jobOrDivisionList.ToList() on jobNames.Name equals jobOrdivision.JobNumber select new NameValueDto() { Name = jobNames.Name, Value = jobOrdivision?.JobId.ToString() ?? "" }).ToList(); return(result); }
/// <summary> /// Get SubAccounts List by using SubAccount Numbers /// </summary> /// <param name="input"></param> /// <returns></returns> private async Task <List <NameValueDto> > GetSubAccountsListByNames(NameValueInputList input) { var cacheItem = await _subAccountCache.GetSubAccountCacheItemAsync( CacheKeyStores.CalculateCacheKey(CacheKeyStores.SubAccountKey, Convert.ToInt32(_customAppSession.TenantId))); var subAccountRestrictioncacheItem = await _subAccountRestrictionCache.GetSubAccountRestrictionCacheItemAsync( CacheKeyStores.CalculateCacheKey(CacheKeyStores.SubAccountRestrictionKey, Convert.ToInt32(_customAppSession.TenantId))); var subAccountRestrictionList = from subaccount in cacheItem.ToList() join subAccountRestriction in subAccountRestrictioncacheItem on subaccount.SubAccountId equals subAccountRestriction.SubAccountId select subaccount; var result = (from subaccountNumber in input.NameValueList join subAccount in subAccountRestrictionList.ToList() on subaccountNumber.Name equals subAccount.SubAccountNumber select new NameValueDto() { Name = subaccountNumber.Name, Value = subAccount?.SubAccountId.ToString() ?? "" }).ToList(); return(result); }
/// <summary> /// Get Vendors, Accounts, Job or Division, Tax Credit and Sub Account List values by Type /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <List <NameValueDto> > GetListByNames(NameValueInputList input) { var list = new List <NameValueDto>(); switch (input.Type) { case "vendors": list = await GetVendorsListByNames(input); break; case "accounts": list = await GetAccountsListByNames(input); break; case "jobordivision": list = await GetJobOrDivisionListByNames(input); break; case "subaccounts": list = await GetSubAccountsListByNames(input); break; case "taxcredit": list = await GetTaxCreditListByNames(input); break; case "1099T4": list = GetTypeof1099T4ListByNames(input); break; } return(list); }
/// <summary> /// Get TaxCredit List by using Numbers /// </summary> /// <param name="input"></param> /// <returns></returns> private async Task <List <NameValueDto> > GetTaxCreditListByNames(NameValueInputList input) { var strTaxCreditNumber = string.Join(",", input.NameValueList.Select(u => u.Name).ToArray()); var query = _taxCreditUnitRepository.GetAll() .WhereIf(!ReferenceEquals(input.OrganizationUnitId, null), p => p.OrganizationUnitId == input.OrganizationUnitId.Value) .Where(u => u.IsActive) .Where(u => strTaxCreditNumber.Contains(u.Number)) .Select(u => new { Name = u.Number, Value = u.Id.ToString() }); var taxCreditList = await query .AsNoTracking() .ToListAsync(); var result = (from taxCreditNames in input.NameValueList join taxCredit in taxCreditList on taxCreditNames.Name equals taxCredit.Name select new NameValueDto() { Name = taxCreditNames.Name, Value = taxCredit?.Value ?? "" }).ToList(); return(result); }