using New_College.IServices; using New_College.Model.Models; using New_College.Services.BASE; using New_College.IRepository.Base; using System.Threading.Tasks; using New_College.Model; using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using New_College.Model.ViewModels; using SqlSugar; using System.Linq.Expressions; using System; using System.Data.Entity.Core.Common.CommandTrees; using System.Linq; using New_College.IRepository; using New_College.Common; namespace New_College.Services { public class D_PlanMajorDescProServices : BaseServices, ID_PlanMajorDescProServices { private readonly IBaseRepository _dal; private readonly ID_PlanMajorDescProRepository d_PlanMajorDescProRepository; public D_PlanMajorDescProServices(IBaseRepository dal, ID_PlanMajorDescProRepository d_PlanMajorDescPro) { this._dal = dal; base.BaseDal = dal; d_PlanMajorDescProRepository = d_PlanMajorDescPro; } /// /// /// /// /// public async Task GetMajorPlanPro(MajorPlanProViewQuery request) { request.Year = request.Year > 2024 ? 2024 : request.Year; var majorview = new MajorPlanProView(); Expression> expression = Expressionable.Create() .And(c => c.UId == request.UId) .And(c => c.Location == request.Location) .AndIF(!string.IsNullOrWhiteSpace(request.BatchName), c => c.BatchName == request.BatchName) .And(c => c.Years == request.Year) .ToExpression(); var query = await _dal.Query(expression); if (query.Any()) { var view = query.FirstOrDefault(); majorview.UId = view.UId; majorview.UniversityName = view.Location; majorview.UniversityCode = UniversityCodeConvertRules.UniversityCodeConvertRulesMap(view.EnrollmentCode); majorview.collegeCode = view.EnrollmentCode; majorview.itemViews = query.Select(c => new MajorPlanProItemView() { BatchName = c.BatchName, fee = c.Free, Major = c.Major, MajorCode = c.MajorCode, MajorGroup = c.MajorGroup, MajorRemark = c.Remark, planCount = c.PlanCount, NewCount = c.NewCount, OldPlanCount = c.PlanCount + c.NewCount, SubjectClam = c.SelectSubject, Years = c.Years, OldYears = c.Years - 1, AcademicYear = c.AcademicYear }).ToList(); } return majorview; } /// /// /// /// /// public async Task> GetUniversityPlanPro(UniversityProViewQuery request) { return await d_PlanMajorDescProRepository.GetUniversityPlanPro(request); } } }