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.DQPSystem
{
    public class SOCView
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        [DisplayName("主键ID")]
        public Guid SOCID { get; set; }

        public Guid? EducationMissionID { get; set; }

        public string EducationMissionName { get; set; }



        /// <summary>
        /// 学年学期ID
        /// </summary>
        [DisplayName("学年学期ID")]
        public Guid? SchoolyearID { get; set; }

        /// <summary>
        /// 学年学期
        /// </summary>
        [DisplayName("学年学期")]
        public string SchoolyearCode { get; set; }

        /// <summary>
        /// 课程资料
        /// </summary>
        [Required]
        [DisplayName("课程资料")]
        public Guid? CoursematerialID { get; set; }

        /// <summary>
        /// 课程资料代码
        /// </summary>
        [DisplayName("课程资料代码")]
        public string CourseCode { get; set; }

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

        /// <summary>
        /// 教研室
        /// </summary>
        [Required]
        [DisplayName("教研室")]
        public Guid? DepartmentID { get; set; }

        /// <summary>
        /// 教研室代码
        /// </summary>
        [DisplayName("教研室代码")]
        public string DepartmentCode { get; set; }

        /// <summary>
        /// 教研室
        /// </summary>
        [DisplayName("教研室")]
        public string DepartmentName { get; set; }

        /// <summary>
        /// 学分
        /// </summary>
        [Required]
        [DisplayName("学分")]
        //[DisplayFormat(DataFormatString = "{0:#.0}")]
        //[RegularExpression(@"^\d+(\.\d{1,1})?$", ErrorMessage = "请输整数或保留1位小数")]
        public decimal? Credit { get; set; }

        /// <summary>
        /// 课程学分
        /// </summary>
        [DisplayName("学分")]
        public string CreditStr { get; set; }

        /// <summary>
        /// 学生人数
        /// </summary>
        [DisplayName("学生人数")]
        public int? StudentCount { get; set; }

        /// <summary>
        /// SOC设置
        /// </summary>
        [DisplayName("SOC设置")]
        public string SOCSetting
        {
            get
            {
                return "查看";
            }
        }

        /// <summary>
        /// 处理方式
        /// </summary>
        [DisplayName("处理方式")]
        public int? HandleModeID { get; set; }

        /// <summary>
        /// 处理方式
        /// </summary>
        [DisplayName("处理方式")]
        public string HandleModeName
        {
            get
            {
                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_HandleMode.ToString())
                    .Where(x => x.Value == HandleModeID)
                    .Select(x => x.Name).FirstOrDefault();
            }
        }

        /// <summary>
        /// 选修类型
        /// </summary>
        public int? OptionalCourseTypeID { get; set; }

        public string EducationMissionNameStr
        {
            get
            {
                return (EducationMissionName == null || EducationMissionName == "") ? "" : EducationMissionName.Replace(CourseName, "").Replace("-", "");
            }
        }
    }
}