using Essensoft.AspNetCore.Payment.Alipay.Domain; using New_College.IRepository; using New_College.IRepository.UnitOfWork; using New_College.Model.Models; using New_College.Model.ViewModels; using New_College.Repository.Base; using NPOI.SS.Formula.Functions; using SqlSugar; using StackExchange.Profiling.Internal; using System.Collections.Generic; using System.Threading.Tasks; namespace New_College.Repository { /// /// D_UniversityRankRepository /// public class D_UniversityRankRepository : BaseRepository, ID_UniversityRankRepository { public D_UniversityRankRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { } public async Task> GetPcUniversityRank(UniversityRankQuery query) { var response = await this.Db.Queryable((rank, u) => new object[] { JoinType.Left, rank.UniversityName == u.Name }) .Where((rank, u) => rank.UniversityType == query.Type) .WhereIF(!string.IsNullOrWhiteSpace(query.Name), (rank, u) => SqlFunc.Contains(rank.UniversityName, query.Name)) .WhereIF(query.SubjectType.HasValue, (rank, u) => u.Type == query.SubjectType) .WhereIF(!string.IsNullOrWhiteSpace(query.Year), (rank, u) => rank.Year == query.Year) .OrderBy((rank, u) => rank.Rank, OrderByType.Asc) .Select((rank, u) => new UniversityPcRankList { AreaName = u.Area_Name, Logo = u.Logo, Name = rank.UniversityName, Syl = u.Syl == 1 ? true : false, Nhef = u.Nhef == 1 ? true : false, Sff = u.Sff == 1 ? true : false, Sort = rank.Rank, SubjectLevel = u.Subject_Level, Uid = u.Id }).ToListAsync(); return response; } } }