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);
        }
Пример #4
0
 public static ApiResult NotExist(this GradePhyRecord model) => ActionStatusMessage.Grade.Record.NotExist;