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

namespace EMIS.ViewModel.StudentManage.StudentProfile
{
    public class StudentPostPracticeView
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        [DisplayName("主键ID")]
        public Guid StudentPostPracticeID { get; set; }

        /// <summary>
        /// 学生信息ID
        /// </summary>
        [Required]
        [DisplayName("学生信息ID")]
        public Guid? UserID { get; set; }

        /// <summary>
        /// 学号
        /// </summary>
        [DisplayName("学号")]
        public string StudentNo { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        [DisplayName("姓名")]
        public string Name { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        [DisplayName("性别")]
        public int? SexID { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        [DisplayName("性别")]
        public string SexName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_Sex.ToString()).Where(x => x.Value == SexID).Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 出生日期
        /// </summary>
        [DisplayName("出生日期")]
        [DataType(DataType.Date)]
        public DateTime? BirthDate { get; set; }

        /// <summary>
        /// 民族
        /// </summary>
        [DisplayName("民族")]
        public int? NationID { get; set; }

        /// <summary>
        /// 民族
        /// </summary>
        [DisplayName("民族")]
        public string NationName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_Nation.ToString()).Where(x => x.Value == NationID).Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 政治面貌
        /// </summary>
        [DisplayName("政治面貌")]
        public int? PoliticsID { get; set; }

        /// <summary>
        /// 政治面貌
        /// </summary>
        [DisplayName("政治面貌")]
        public string PoliticsName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_Politics.ToString()).Where(x => x.Value == PoliticsID).Select(x => x.Name).FirstOrDefault();
            }
        }

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

        /// <summary>
        /// 在校状态
        /// </summary>
        [DisplayName("在校状态")]
        public string InSchoolStatusName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_InschoolStatus.ToString()).Where(x => x.Value == InSchoolStatusID).Select(x => x.Name).FirstOrDefault();
            }
        }

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

        /// <summary>
        /// 学籍状态
        /// </summary>
        [DisplayName("学籍状态")]
        public string StudentStatusName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_StudentStatus.ToString()).Where(x => x.Value == StudentStatus).Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 年级
        /// </summary>
        [DisplayName("年级")]
        public int? GradeID { get; set; }

        /// <summary>
        /// 年级
        /// </summary>
        [DisplayName("年级")]
        public string GradeName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_Grade.ToString()).Where(x => x.Value == GradeID).Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 专业ID(Value)
        /// </summary>
        [DisplayName("专业ID(Value)")]
        public int? StandardID { get; set; }

        /// <summary>
        /// 专业代码
        /// </summary>
        [DisplayName("专业代码")]
        public string StandardCode
        {
            get
            {
                var inistStandardCode = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Standard.ToString()).Where(x => x.Value == StandardID).Select(x => x.Code).FirstOrDefault();
                return (inistStandardCode != null ? inistStandardCode.PadLeft(6, '0') : "");
            }
        }

        /// <summary>
        /// 专业名称
        /// </summary>
        [DisplayName("专业名称")]
        public string StandardName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_Standard.ToString()).Where(x => x.Value == StandardID).Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 培养层次
        /// </summary>
        [Display(ResourceType = typeof(EMIS.Resources.DataAnnotations.Label), Name = "EducationID")]
        public int? EducationID { get; set; }

        /// <summary>
        /// 培养层次
        /// </summary>
        [Display(ResourceType = typeof(EMIS.Resources.DataAnnotations.Label), Name = "EducationName")]
        public string EducationName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_Education.ToString()).Where(x => x.Value == EducationID).Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 学习形式
        /// </summary>
        [DisplayName("学习形式")]
        public int? LearningformID { get; set; }

        /// <summary>
        /// 学习形式
        /// </summary>
        [DisplayName("学习形式")]
        public string LearningformName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_Learningform.ToString()).Where(x => x.Value == LearningformID).Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 学制
        /// </summary>
        [DisplayName("学制")]
        public decimal? LearnSystem { get; set; }

        /// <summary>
        /// 班序
        /// </summary>
        [DisplayName("班序")]
        public int? ClassNum { get; set; }

        /// <summary>
        /// 班级信息ID
        /// </summary>
        [DisplayName("班级信息ID")]
        public Guid? ClassmajorID { get; set; }

        /// <summary>
        /// 班级编号
        /// </summary>
        [DisplayName("班级编号")]
        public string ClassmajorNo { get; set; }

        /// <summary>
        /// 班级名称
        /// </summary>
        [DisplayName("班级名称")]
        public string ClassmajorName { get; set; }

        /// <summary>
        /// 年级专业ID
        /// </summary>
        [DisplayName("年级专业ID")]
        public Guid? GrademajorID { get; set; }

        /// <summary>
        /// 年级专业编号
        /// </summary>
        [DisplayName("年级专业编号")]
        public string GrademajorCode { get; set; }

        /// <summary>
        /// 年级专业名称
        /// </summary>
        [DisplayName("年级专业名称")]
        public string GrademajorName { get; set; }

        /// <summary>
        /// 院系专业ID
        /// </summary>
        [DisplayName("院系专业ID")]
        public Guid? FacultymajorID { get; set; }

        /// <summary>
        /// 院系专业编号
        /// </summary>
        [DisplayName("院系专业编号")]
        public string FacultymajorCode { get; set; }

        /// <summary>
        /// 院系专业名称
        /// </summary>
        [DisplayName("院系专业名称")]
        public string FacultymajorName { get; set; }

        /// <summary>
        /// 院系所ID
        /// </summary>
        [Display(ResourceType = typeof(EMIS.Resources.DataAnnotations.Label), Name = "College")]
        public Guid? CollegeID { get; set; }

        /// <summary>
        /// 院系所代码
        /// </summary>
        [Display(ResourceType = typeof(EMIS.Resources.DataAnnotations.Label), Name = "CollegeCode")]
        public string CollegeNo { get; set; }

        /// <summary>
        /// 院系所
        /// </summary>
        [Display(ResourceType = typeof(EMIS.Resources.DataAnnotations.Label), Name = "College")]
        public string CollegeName { get; set; }

        /// <summary>
        /// 校区ID
        /// </summary>
        [Display(ResourceType = typeof(EMIS.Resources.DataAnnotations.Label), Name = "Campus")]
        public Guid? CampusID { get; set; }

        /// <summary>
        /// 校区代码
        /// </summary>
        [Display(ResourceType = typeof(EMIS.Resources.DataAnnotations.Label), Name = "CampusCode")]
        public string CampusCode { get; set; }

        /// <summary>
        /// 校区名称
        /// </summary>
        [Display(ResourceType = typeof(EMIS.Resources.DataAnnotations.Label), Name = "Campus")]
        public string CampusName { get; set; }

        /// <summary>
        /// 实习地点
        /// </summary>
        [Required]
        [DisplayName("实习地点")]
        public string PracticePlace { get; set; }

        /// <summary>
        /// 开始年份
        /// </summary>
        [Required]
        [DisplayName("开始年份")]
        public int? StartYear { get; set; }

        /// <summary>
        /// 开始月份
        /// </summary>
        [Required]
        [DisplayName("开始月份")]
        public int? StartMonth { get; set; }

        /// <summary>
        /// 结束年份
        /// </summary>
        [Required]
        [DisplayName("结束年份")]
        public int? EndYear { get; set; }

        /// <summary>
        /// 结束月份
        /// </summary>
        [Required]
        [DisplayName("结束月份")]
        public int? EndMonth { get; set; }

        /// <summary>
        /// 指导教师
        /// </summary>
        [Required]
        [DisplayName("指导教师")]
        public string PracticeMentor { get; set; }

        /// <summary>
        /// 实习内容
        /// </summary>
        [Required]
        [DisplayName("实习内容")]
        public string PracticeContent { get; set; }

        /// <summary>
        /// 自我鉴定
        /// </summary>
        [Required]
        [DisplayName("自我鉴定")]
        public string SelfAppraise { 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; }

    }
}