using FruitBank.Common.Entities; using Mango.Nop.Core.Repositories; using Nop.Core.Caching; using Nop.Core.Configuration; using Nop.Core.Events; using Nop.Data; using Nop.Services.Logging; namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer; public class PartnerDbTable : MgDbTableBase { public PartnerDbTable(IEventPublisher eventPublisher, INopDataProvider dataProvider, IShortTermCacheManager shortTermCacheManager, IStaticCacheManager staticCacheManager, AppSettings appSettings, ILogger logger) : base(eventPublisher, dataProvider, shortTermCacheManager, staticCacheManager, appSettings, logger) { } public IQueryable GetAll() => Table; //public IOrderedQueryable GetAllLastBidByAuctionId(int auctionId) //{ // return GetAllByAuctionId(auctionId) // .OrderByDescending(x => x.Id) // .GroupBy(x => x.AuctionId, (_, bids) => bids.FirstOrDefault()) // .OrderByDescending(percentGroup => percentGroup.Id); //} //public IOrderedQueryable GetLastAuctionBidByProductToAuctionId(int productToAuctionId) // => GetAllByProductToAuctionId(productToAuctionId).OrderByDescending(x => x.Id); //public Task GetBidsCountByProductToAuctionIdAsync(int productToAuctionId) // => Table.CountAsync(x => x.ProductAuctionMappingId == productToAuctionId); //public IQueryable GetAllByAuctionId(int auctionId) // => Table.Where(x => x.AuctionId == auctionId); //public IQueryable GetAllByProductToAuctionId(int productToAuctionId) // => Table.Where(x => x.ProductAuctionMappingId == productToAuctionId); //public Task HasBidByProductToAuctionIdAsync(int productToAuctionId) //{ // return Table.AnyAsync(x => x.ProductAuctionMappingId == productToAuctionId); //} //public async Task RevertByProductToAuctionIdAsync(int productToAuctionId) //{ // var lastBid = await GetLastAuctionBidByProductToAuctionId(productToAuctionId).FirstOrDefaultAsync(); // if (lastBid == null) // { // await Logger.InformationAsync($"AuctionBidDbTable.RevertByProductToAuctionIdAsync(); (lastBid == null); productToAuction.Id: {productToAuctionId}"); // return null; // } // await DeleteAsync(lastBid); // return await GetLastAuctionBidByProductToAuctionId(productToAuctionId).FirstOrDefaultAsync(); //} //public async Task DeleteAllByProductToAuctionIdAsync(int productToAuctionId) //{ // var deletedBids = await DeleteAsync(x => x.ProductAuctionMappingId == productToAuctionId); // await Logger.InformationAsync($"AuctionBidDbTable.DeleteAllByProductToAuctionIdAsync(); productToAuction.Id: {productToAuctionId}; deletedBids: {deletedBids}"); // return deletedBids; //} }