/// <summary>
        /// to model , if previous exist in db , use it
        /// </summary>
        /// <param name="vm"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public static GradeExam ToModel(this ExamModifyViewModel vm, ApplicationDbContext context)
        {
            if (vm == null)
            {
                return(null);
            }
            var model = vm.Data;

            if (model == null)
            {
                return(null);
            }
            var m = context.GradeExams.Where(e => e.Name == model.Name).FirstOrDefault();

            if (m == null)
            {
                m = new GradeExam();
            }
            m.Name        = model.Name;
            m.IsRemoved   = model.IsRemoved;
            m.HandleBy    = context.AppUsersDb.Where(u => u.Id == model.HoldBy).FirstOrDefault();
            m.HoldBy      = context.CompaniesDb.Where(c => c.Code == model.HoldBy).FirstOrDefault();
            m.Create      = model.Create ?? DateTime.MinValue;
            m.CreateBy    = context.AppUsersDb.Where(u => u.Id == model.CreateBy).FirstOrDefault();
            m.Description = model.Description;
            m.ExecuteTime = model.ExecuteTime ?? DateTime.MinValue;
            return(m);
        }
コード例 #2
0
 public static ExamDTO ToDTO(this GradeExam model) => new ExamDTO()
 {
     Create      = model.Create,
     CreateBy    = model.CreateById,
     Description = model.Description,
     ExecuteTime = model.ExecuteTime,
     HandleBy    = model.HandleBy?.Id,
     HoldBy      = model.HoldBy?.Code,
     IsRemoved   = model.IsRemoved,
     Name        = model.Name
 };
コード例 #3
0
        public IActionResult Grade(GradeExam gradeExam)
        {
            var examId       = RouteData.Values["id"];
            var GradeExam    = _context.StudExam.Where(x => x.StudExamId == examId.ToString()).FirstOrDefault();
            var StudentGrade = Request.Form["grade1"].ToString();

            GradeExam.Grade = decimal.Parse(StudentGrade);

            _context.SaveChanges();

            return(RedirectToAction("Details", new { id = GradeExam.EId }));
        }
コード例 #4
0
        private GradeExam MapGradeExamModel(GradeExam model)
        {
            var createById = model.CreateById;

            if (createById != null)
            {
                model.CreateBy = _context.AppUsersDb.Where(u => u.Id == createById).FirstOrDefault();
            }
            var holdById = model.HoldBy?.Code;

            if (holdById != null)
            {
                model.HoldBy = _context.CompaniesDb.Where(u => u.Code == holdById).FirstOrDefault();
            }
            var handleById = model.HandleBy?.Id;

            if (handleById != null)
            {
                model.HandleBy = _context.AppUsersDb.Where(u => u.Id == handleById).FirstOrDefault();
            }
            return(model);
        }
コード例 #5
0
        public GradeExam ModifyExam(GradeExam model)
        {
            if (model == null)
            {
                throw new ActionStatusMessageException(model.NotExist());
            }
            var db = _context.GradeExams;

            if (model.HoldBy == null)
            {
                throw new ActionStatusMessageException(ActionStatusMessage.Grade.Exam.UserNotSet);
            }
            var prev = db.Where(r => r.Name == model.Name).FirstOrDefault();             // use name as unique

            return(model.Modify(db, prev, (m, p) =>
            {
                var newM = MapGradeExamModel(m);
                newM.CreateBy = p?.CreateBy ?? m.CreateBy;
                newM.Create = p?.Create ?? DateTime.Now;
                return newM;
            }, _context));
        }
コード例 #6
0
 public static ApiResult NotExist(this GradeExam model) => ActionStatusMessage.Grade.Exam.NotExist;