public ServiceResult <List <GetMerchantInfoOM> > GetMerchantInfoList(GetMerchantInfoListIM im) { return(new ServiceResult <List <GetMerchantInfoOM> > { Data = new MerchantComponent().GetMerchantInfoList(im) }); }
public List <GetMerchantInfoOM> GetMerchantInfoList(GetMerchantInfoListIM im) { if (im.PageSize > 20) { im.PageSize = 20; } List <MerchantBriefInformation> list; if (im.Location == null) { list = new MerchantInformationDAC().QueryMerchantListByCountryId(im.Filter.CountryId, im.PageIndex, im.PageSize, im.Filter.KeyWord, im.Filter.Category); } else { list = new MerchantInformationDAC().QueryNearbyMerchantList(im.Location.Latitude, im.Location.Longitude, im.Filter.CountryId, im.PageSize, im.PageIndex, im.Filter.KeyWord, im.Filter.Category); } var mwDAC = new MerchantWalletDAC(); var mscDAC = new MerchantSupportCryptoDAC(); var cryptoList = new CryptoComponent().GetList(); return(list.Select(item => { List <int> supportCryptoIdList = new List <int>(); if (item.AccountType == (byte)AccountType.Merchant) { supportCryptoIdList = mwDAC.SupportReceiptList(item.MerchantAccountId).Select(t => t.CryptoId).ToList(); } else { supportCryptoIdList = mscDAC.GetList(item.Id).Select(t => t.CryptoId).ToList(); } return new GetMerchantInfoOM() { AccountType = item.AccountType, IsAllowExpense = item.IsAllowExpense, Address = item.Address, AvailableCryptoIconList = cryptoList.Where(c => supportCryptoIdList.Contains(c.Id)).Select(t => t.IconURL.ToString()).ToList(), Distance = item.Distance.ToSpecificDecimal(2).ToString(CultureInfo.InvariantCulture), OriginIconId = item.FileId, CompressIconId = item.ThumbnailId ?? Guid.Empty, Id = item.MerchantInformationId, Location = new Location() { Longitude = item.Lng, Latitude = item.Lat }, Tags = item.Tags.Split(',').ToList(), Title = item.MerchantName }; }).ToList()); }