private GradePhyRecord MapPhyRecordModel(GradePhyRecord model) { var createById = model.CreateById; model.CreateBy = _context.AppUsersDb.Where(u => u.Id == createById).FirstOrDefault(); var examId = model.Exam.Id; model.Exam = _context.GradeExams.Where(e => e.Id == examId).FirstOrDefault(); var userId = model.UserId; model.User = _context.AppUsersDb.Where(u => u.Id == userId).FirstOrDefault(); var subjectId = model.Subject.Id; model.Subject = _context.GradePhySubjects.Where(s => s.Id == subjectId).FirstOrDefault(); return(model); }
public GradePhyRecord ModifyRecord(GradePhyRecord model) { if (model == null) { throw new ActionStatusMessageException(model.NotExist()); } var db = _context.GradePhyRecords; var prev = db.Where(r => r.Id == model.Id).FirstOrDefault(); if (model.User == null) { throw new ActionStatusMessageException(ActionStatusMessage.Grade.Record.UserNotSet); } return(model.Modify(db, prev, (m, p) => { var newM = MapPhyRecordModel(m); newM.CreateBy = p?.CreateBy ?? m.CreateBy; newM.Create = p?.Create ?? DateTime.Now; return newM; }, _context)); }
/// <summary> /// to model , if previous exist in db , use it /// </summary> /// <param name="model"></param> /// <param name="context"></param> /// <returns></returns> public static GradePhyRecord ToModel(this GradeRecordModifyViewModel model, ApplicationDbContext context) { if (model == null) { return(null); } var m = context.GradePhyRecords.Where(r => r.Id == model.Id).FirstOrDefault(); if (m == null) { m = new GradePhyRecord(); } m.IsRemoved = model.IsRemoved; m.Create = model.Create; m.CreateBy = context.AppUsersDb.Where(u => u.Id == model.CreateBy).FirstOrDefault(); m.Exam = context.GradeExams.Where(e => e.Name == model.Exam).FirstOrDefault(); m.Id = model.Id; m.RawValue = model.RawValue; m.Remark = model.Remark; m.Score = model.Score; m.Subject = context.GradePhySubjects.Where(s => s.Name == model.Subject).FirstOrDefault(); m.User = context.AppUsersDb.Where(u => u.Id == model.User).FirstOrDefault(); return(m); }
public static ApiResult NotExist(this GradePhyRecord model) => ActionStatusMessage.Grade.Record.NotExist;