using Infrastructure.Application; using Infrastructure.Data; using Infrastructure.Extensions; using Infrastructure.Web.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using System; using System.Globalization; using System.Linq; using System.Text.RegularExpressions; using TeacherExt.Entities; using TeacherExt.Models; namespace TeacherExt.Controllers { public class HomeController : CrudController { private readonly ILogger _logger; private readonly IRepository _teacherRepo; public HomeController(ILogger logger, IRepository teacherRepo) : base(teacherRepo) { _logger = logger; this._teacherRepo = teacherRepo; } public override void OnActionExecuting(ActionExecutingContext context) { } public override IQueryable Query(PagedListModel model, IQueryable query) { return query.WhereIf(!string.IsNullOrEmpty(model.Query.RealName), o => o.RealName.Contains(model.Query.RealName)) .WhereIf(!string.IsNullOrEmpty(model.Query.CheckStatus), o => o.CheckStatus == model.Query.CheckStatus); } public override IQueryable Include(IQueryable query) { return query.Include(o => o.Info).Include(o => o.Prop); } public override void EntityToModel(Teacher entity, EditTeacherModel model) { if(string.IsNullOrEmpty(entity.IdNumber)) { var value = entity.IdNumber.Length == 15 ? $"19{entity.IdNumber.Substring(5,6)}" : entity.IdNumber.Substring(5,8); var birthday = DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture); model.Age = DateTime.Now.Year - birthday.Year; } } public override void ToEditModel(Teacher entity, EditTeacherModel model) { ViewData.SelectList(o => model.CheckStatus, () => this.GetCheckStatus(model.CheckStatus)); ViewData.SelectList(o => model.UserType, () => this.GetUserType(model.UserType)); ViewData.SelectList(o => model.Sex, () => this.GetSex(model.Sex)); ViewData.SelectList(o => model.Nation, () => this.GetNation(model.Nation)); ViewData.SelectList(o => model.Politics, () => this.GetPolitics(model.Politics)); ViewData.SelectList(o => model.MaxTitle, () => this.GetTitle(model.MaxTitle)); ViewData.SelectList(o => model.NotMaxTitle, () => this.GetTitle(model.NotMaxTitle)); ViewData.SelectList(o => model.PostType, () => this.GetPost(model.PostType)); ViewData.SelectList(o => model.PostGrade, () => this.GetPostGrade(model.PostGrade)); ViewData.SelectList(o => model.EducationGrade, () => this.GetEducationGrade(model.EducationGrade)); ViewData.SelectList(o => model.FullTimeSchoolType, () => this.GetFullTimeSchoolType(model.FullTimeSchoolType)); ViewData.SelectList(o => model.FullTimeSchoolEducation, () => this.GetEducation(model.FullTimeSchoolEducation)); ViewData.SelectList(o => model.JobTimeSchoolType, () => this.GetFullTimeSchoolType(model.JobTimeSchoolType)); ViewData.SelectList(o => model.JobTimeSchoolEducation, () => this.GetEducation(model.JobTimeSchoolEducation)); ViewData.SelectList(o => model.MaxEducation, () => this.GetEducation(model.MaxEducation)); ViewData.SelectList(o => model.MaxDegree, () => this.GetDegree(model.MaxDegree)); ViewData.SelectList(o => model.MainTeachPeriod, () => this.GetTeachPeriod(model.MainTeachPeriod)); ViewData.SelectList(o => model.MainTeachSubject, () => this.GetTeachSubject(model.MainTeachSubject)); ViewData.SelectList(o => model.MainTeachGrade, () => this.GetTeachGrade(model.MainTeachGrade)); ViewData.SelectList(o => model.OtherTeachPeriod, () => this.GetTeachPeriod(model.OtherTeachPeriod)); ViewData.SelectList(o => model.OtherTeachSubject, () => this.GetTeachSubject(model.OtherTeachSubject)); ViewData.SelectList(o => model.Position, () => this.GetPosition(model.Position)); ViewData.SelectList(o => model.TeacherCardType, () => this.GetTeacherCardType(model.TeacherCardType)); ViewData.SelectList(o => model.TeacherCardLangLevel, () => this.GetLangLevel(model.TeacherCardLangLevel)); ViewData.SelectList(o => model.CurrentAddressArea, () => this.GetAddressArea(model.CurrentAddressArea)); } private SelectList GetCheckStatus(string selected) { return new string[] { "未提交", "待校级审核", "校级审核失败", "待局级审核", "局级审核失败", "局级审核成功", }.ToSelectList(selected); } private SelectList GetUserType(string selected) { return new string[] { "在编教师", "区聘教师", "校聘教师", }.ToSelectList(selected); } private SelectList GetSex(string selected) { return new string[] { "男", "女", }.ToSelectList(selected); } private SelectList GetNation(string selected) { return new string[] { "汉族", "蒙古族", "回族", "藏族", "维吾尔族", "苗族", "彝族", "壮族", "布依族", "朝鲜族", "满族", "侗族", "瑶族", "白族", "土家族", "哈尼族", "哈萨克族", "傣族", "黎族", "傈僳族", "佤族", "畲族", "高山族", "拉祜族", "水族", "东乡族", "纳西族", "景颇族", "柯尔克孜族", "土族", "达斡尔族", "仫佬族", "羌族", "布朗族", "撒拉族", "毛难族", "仡佬族", "锡伯族", "阿昌族", "普米族", "塔吉克族", "怒族", "乌孜别克族", "俄罗斯族", "鄂温克族", "崩龙族", "保安族", "裕固族", "京族", "塔塔尔族", "独龙族", "鄂伦春族", "赫哲族", "门巴族", "珞巴族", "基诺族", }.ToSelectList(selected); } private SelectList GetPolitics(string selected) { return new string[] { "中共党员", "中共预备党员", "共青团员", "群众", "民革会员", "民盟盟员", "民建会员", "民进会员", "农工党党员", "致公党党员", "九三学社社员", "台盟盟员", "其他民主党派", }.ToSelectList(selected); } private SelectList GetTitle(string selected) { return new string[] { "正高级教师", "高级教师", "一级教师", "二级教师", "未评", "工勤", }.ToSelectList(selected); } private SelectList GetPost(string selected) { return new string[] { "专技岗位", "管理岗位", "工勤岗位", }.ToSelectList(selected); } private SelectList GetPostGrade(string selected) { return new string[] { "四级", "五级", "六级", "七级", "八级", "九级", "十级", "十一级", "十二级", }.ToSelectList(selected); } private SelectList GetEducationGrade(string selected) { return new string[] { "专技十一级", "专技十二级", }.ToSelectList(selected); } private SelectList GetFullTimeSchoolType(string selected) { return new string[] { "师范院校师范专业", "师范院校非师范专业", "非师范院校师范专业", "非师范院校非师范专业", }.ToSelectList(selected); } private SelectList GetEducation(string selected) { return new string[] { "研究生博士教育", "研究生硕士教育", "大学本科教育", "大学专科教育", "中等专业教育", "普通高级中学教育", "初级中学教育", "小学教育", "其他", }.ToSelectList(selected); } private SelectList GetDegree(string selected) { return new string[] { "学士学位", "硕士学位", "博士学位", }.ToSelectList(selected); } private SelectList GetTeachPeriod(string selected) { return new string[] { "学前教育", "小学", "普通初中", }.ToSelectList(selected); } private SelectList GetTeachSubject(string selected) { return new string[] { "语文", "数学", "英语", "音乐", "体育", "美术", "科学", "书法", "信息技术", "政治", "历史", "地理", "物理", "化学", "生物", "幼教全科", "心理健康", "综合实践课", "无", }.ToSelectList(selected); } private SelectList GetTeachGrade(string selected) { return new string[] { "九年级", "八年级", "七年级", "六年级", "五年级", "四年级", "三年级", "二年级", "一年级", "幼儿园大班", "幼儿园中班", "幼儿园小班", }.ToSelectList(selected); } private SelectList GetPosition(string selected) { return new string[] { "校长", "副校长", "党支部副书记", "办公室主任", "办公室副主任", "教导处主任", "教导处副主任", "德育主任", "团支部书记", "大队辅导员", "工会主席", "总务主任", "总务副主任", }.ToSelectList(selected); } private SelectList GetTeacherCardType(string selected) { return new string[] { "幼儿园教师资格", "小学教师资格", "初级中学教师资格", "高级中学教师资格", "中等职业学校教师资格", "中等职业学校实习指导教师资格", "高等学校教师资格", }.ToSelectList(selected); } private SelectList GetLangLevel(string selected) { return new string[] { "一级甲等", "一级乙等", "二级甲等", "二级乙等", "三级甲等", }.ToSelectList(selected); } private SelectList GetAddressArea(string selected) { return new string[] { "城中区", "城北区", "城西区", "城东区", }.ToSelectList(selected); } } }