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;
}
}
}