using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Helpers;
using System.Web.Mvc;
using EXAM.Models;


namespace EXAM.Controllers
{
    /// <summary>
    /// 老师管理控制器
    /// </summary>
    public class TeachersController : Controller
    {
       
        private ExamDBEntities db = new ExamDBEntities();

        // GET: Teachers
        public ActionResult Index()
        {
            db.Configuration.LazyLoadingEnabled = false;
            return View(db.Teacher.ToList());
            
        }
        [HttpPost]
        public ActionResult LoinIndex(Teacher t,string Code)
        {

            if (Code != Session["Code"].ToString())
            {
                TempData["Msg"] = "验证码错误!";
                return RedirectToAction("LoginTeacher", "Home");
            }
            if (t.TeacherLoginName == "" || t.TeacherLoginPwd == "")
            {
                TempData["Msg"] = "账号密码不能为空!";
                return RedirectToAction("LoginTeacher", "Home");
            }
            if (!ModelState.IsValid)
            {
                return RedirectToAction("LoginTeacher", "Home",t);
            }
            //先加密后在查询
            var pwd= DESHelper.Encrypt3CBC(t.TeacherLoginPwd);
            var a = db.Teacher.Where(ts => ts.TeacherLoginName == t.TeacherLoginName).Where(ts => ts.TeacherLoginPwd == pwd).FirstOrDefault();
            if (a!=null)
            {
                Session["Teachers"] = a;
                //得到之前的访问
                if (Session["URL"]!=null)
                {
                    var dd = Session["URL"].ToString();
                    return Redirect(dd);
                }
                return RedirectToAction("Index", "Home");
            }
            else
            {
                TempData["Msg"] = "账号或密码错误!";
                return RedirectToAction("LoginTeacher", "Home",t);
            }
        }
        public ActionResult Create()
        {
            
            return View();
            
        }
        [HttpPost]
        public ActionResult Create(Teacher t)
        {
            if (t==null)
            {
                return RedirectToAction("Create");
            }
            //密码加密
            t.TeacherLoginPwd = DESHelper.Encrypt3CBC(t.TeacherLoginPwd);
            db.Teacher.Add(t);
            db.SaveChanges();
            return RedirectToAction("Index");

        }
        public ActionResult Delete(int id)
        {
            db.Configuration.LazyLoadingEnabled = false;
              var data=  db.Teacher.Find(id);
            return View(data);

        }

        [HttpPost]
        public ActionResult Delete(string id)
        {
            db.Configuration.LazyLoadingEnabled = false;
            var t = new Teacher
            {
                TeacherID = int.Parse(id)
            };
            db.Teacher.Attach(t);
            db.Teacher.Remove(t);
            db.SaveChanges();
            return RedirectToAction("Index");

        }

        public ActionResult Edit(int id)
        {
            db.Configuration.LazyLoadingEnabled = false;
            var data = db.Teacher.Find(id);
            //解密
            data.TeacherLoginPwd = DESHelper.Decrypt3CBC(data.TeacherLoginPwd);
            return View(data);

        }
        [HttpPost]
        public ActionResult Edit(int id,Teacher t)
        {
            db.Configuration.LazyLoadingEnabled = false;
            t.TeacherID = id;
            //密码加密
            t.TeacherLoginPwd = DESHelper.Encrypt3CBC(t.TeacherLoginPwd);
            db.Entry(t).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index"); 

        }

        public ActionResult Details(int id)
        {
            db.Configuration.LazyLoadingEnabled = false;
            var data = db.Teacher.Find(id);
            //解密
            data.TeacherLoginPwd = DESHelper.Decrypt3CBC(data.TeacherLoginPwd);
            return View(data);

        }
    }
}