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

namespace EMIS.ViewModel.Cultureplan
{
    public class CoursematerialView
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        [DisplayName("主键ID")]
        public Guid CoursematerialID { get; set; }

        /// <summary>
        /// 课程代码
        /// </summary>
        [Required]
        [DisplayName("课程代码")]
        [RegularExpression(@"^[0-9a-zA-Z\s?]+$", ErrorMessage = "请输入数字或英文字母")]
        public string CourseCode { get; set; }

        /// <summary>
        /// 课程名称
        /// </summary>
        [Required]
        [DisplayName("课程名称")]
        public string CourseName { get; set; }

        /// <summary>
        /// 课程简称
        /// </summary>
        [DisplayName("课程简称")]
        public string Abbreviation { get; set; }

        /// <summary>
        /// 英文名称
        /// </summary>
        [DisplayName("英文名称")]
        public string EnglishName { get; set; }

        /// <summary>
        /// 课程规范名
        /// </summary>
        [DisplayName("课程规范名")]
        public string StandardName { get; set; }

        /// <summary>
        /// 课程版本
        /// </summary>
        [DisplayName("课程版本")]
        public string CourseEdition { get; set; }

        /// <summary>
        /// 课程级别
        /// </summary>
        [DisplayName("课程级别")]
        public int? CourseLevelID { get; set; }

        /// <summary>
        /// 课程级别(Excel导入)
        /// </summary>
        [DisplayName("课程级别")]
        public string CourseLevelStr { get; set; }

        /// <summary>
        /// 课程级别
        /// </summary>
        [DisplayName("课程级别")]
        public string CourseLevelName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_CourseLevel.ToString())
                    .Where(x => x.Value == CourseLevelID)
                    .Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 课程科类
        /// </summary>
        [DisplayName("课程科类")]
        public int? CourseScienceID { get; set; }

        /// <summary>
        /// 课程科类(Excel导入)
        /// </summary>
        [DisplayName("课程科类")]
        public string CourseScienceStr { get; set; }

        /// <summary>
        /// 课程科类
        /// </summary>
        [DisplayName("课程科类")]
        public string CourseScienceName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_CourseScience.ToString())
                    .Where(x => x.Value == CourseScienceID)
                    .Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 上课类型ID
        /// </summary>
        [DisplayName("上课类型ID")]
        public Guid? ClassGroupingID { get; set; }

        /// <summary>
        /// 上课类型
        /// </summary>
        [DisplayName("上课类型")]
        public string ClassName { get; set; }

        /// <summary>
        /// 课程简介
        /// </summary>
        [DisplayName("课程简介")]
        public string CourseSynopsis { get; set; }

        /// <summary>
        /// 预修课程集
        /// </summary>
        [DisplayName("预修课程集")]
        public string CourseReserve { get; set; }

        /// <summary>
        /// 是否启用
        /// </summary>
        [DisplayName("是否启用")]
        public bool IsEnable { get; set; }

        /// <summary>
        /// 是否启用(Excel导入用)
        /// </summary>
        [DisplayName("是否启用")]
        public string IsEnableStr { get; set; }

        /// <summary>
        /// 是否启用
        /// </summary>
        [DisplayName("是否启用")]
        public string IsEnableName
        {
            get
            {
                return IsEnable == true ? "是" : "否";
            }
        }

        /// <summary>
        /// 备注
        /// </summary>
        [DisplayName("备注")]
        public string Remark { get; set; }

        /// <summary>
        /// 错误信息(Excel导入)
        /// </summary>
        [DisplayName("未导入原因")]
        public string ErrorMessage { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        [DisplayName("状态")]
        public int? RecordStatus { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        [DisplayName("创建人")]
        public Guid? CreateUserID { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [DisplayName("创建时间")]
        public DateTime? CreateTime { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        [DisplayName("修改人")]
        public Guid? ModifyUserID { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        [DisplayName("修改时间")]
        public DateTime? ModifyTime { get; set; }

    }
}