LFlow/LFlow.VersionManagement/Repository/VersionManagementRepo.cs

35 lines
1.2 KiB
C#

using LFlow.Base.Default;
using LFlow.Base.Utils;
using LFlow.VersionManagement.Enums;
using LFlow.VersionManagement.Model;
using SqlSugar;
namespace LFlow.VersionManagement.Repository;
public class VersionManagementRepo(ISqlSugarClient db) : DefaultCurdRepo<VersionModel, string>(db)
{
public override List<VersionModel> Search(VersionModel whereObj)
{
return db.Queryable<VersionModel>()
.Where(whereObj.ToWhereExp())
.ToList();
}
public override List<string> WhereSearchId(VersionModel whereObj)
{
return db.Queryable<VersionModel>()
.Where(whereObj.ToWhereExp())
.Where(x => x.ID != null)
.Select(x => x.ID)
.ToList();
}
public VersionModel GetLatestVersion(VersionType type, VersionChannel channel, UpgradeTargetType targetType)
{
return db.Queryable<VersionModel>()
.Where(mt => type == mt.VersionType && channel == mt.VersionChannel && targetType == mt.UpgradeTargetType)
.GroupBy(mt => mt.CurrentVersion)
.OrderBy(mt => mt.LastPublishTime, OrderByType.Desc)
.First();
}
}