using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using EMIS.ViewModel.CacheManage;

namespace EMIS.ViewModel.ScoreManage
{
    public class ExaminationExemptionView
    {/// <summary>
        /// 免考名单ID
        /// </summary>
        public System.Guid ExaminationExemptionID { get; set; }

        /// <summary>
        /// 学生ID
        /// </summary>
        [Required]
        [DisplayName("学号")]
        public Nullable<System.Guid> UserID { get; set; }
        [DisplayName("学号")]
        public string LoginID { get; set; }
        [DisplayName("姓名")]
        public string Name { get; set; }
        [DisplayName("班级")]
        public string ClassmajorName { get; set; }

        public int? Year { get; set; }
        public int? StandardID { get; set; }
        /// <summary>
        /// 院系所ID
        /// </summary>
        public Guid? CollegeID { get; set; }

        /// <summary>
        /// 学年学期
        /// </summary>
        [Required]
        [DisplayName("学年学期")]
        public Nullable<System.Guid> SchoolyearID { get; set; }
        [DisplayName("学年学期")]
        public string SchoolyearCode { get; set; }

        /// <summary>
        /// 课程ID
        /// </summary>
        [Required]
        [DisplayName("课程名称")]
        public Nullable<System.Guid> CoursematerialID { get; set; }
        [DisplayName("课程代码")]
        public string CourseCode { get; set; }
        [DisplayName("课程名称")]
        public string CourseName { get; set; }

        /// <summary>
        /// 考试性质
        /// </summary>
        [Required]
        [DisplayName("考试性质")]
        public Nullable<int> ExamsCategoryID { get; set; }
        [DisplayName("考试性质")]
        public string ExamsCategoryName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_ExamsCategory.ToString())
                    .Where(x => x.Value == ExamsCategoryID)
                    .Select(x => x.Name).FirstOrDefault();
            }
        }

        [DisplayName("申请原因")]
        public string Reason { get; set; }

        /// <summary>
        /// 审核状态
        /// </summary>
        [DisplayName("审核状态")]
        public Nullable<int> RecordStatus { get; set; }
        public string RecordStatusName { get; set; }

        /// <summary>
        /// 申请时间
        /// </summary>
        [DisplayName("申请时间")]
        [DisplayFormat(DataFormatString = "yyyy-MM-dd HH:mm:ss")]
        public Nullable<System.DateTime> CreateTime { get; set; }
    }
}