public ActionResult AddDepartment()
        {
            ScheduleManager manager = new ScheduleManager();

            var model = new DepartmentAddEditModel();
            ViewBag.QuarterList = manager.GetHPQuarterList();

            return View(model);
        }
        public ActionResult AddDepartment(DepartmentAddEditModel entity)
        {
            ScheduleManager manager = new ScheduleManager();

            if (manager.AddNewDepartment(entity))
            {
                return RedirectToAction("ManageDepartments");
            }
            else
            {
                var model = entity;
                return View(model);
            }
        }
        public bool EditDepartment(DepartmentAddEditModel entity)
        {
            bool result = false;

            using (ScheduleDataContext ctx = new ScheduleDataContext())
            {
                var dept = ctx.Departments.Where(d => d.DepartmentID == entity.DepartmentID).SingleOrDefault<Department>();

                if (entity.Description == "" || entity.Description == null)
                {
                    entity.Description = " ";
                }

                dept.Contact = entity.Contact;
                dept.Description = entity.Description;
                dept.EffectiveYearQuarterBegin = entity.EffectiveYearQuarterBegin;
                dept.EffectiveYearQuarterEnd = entity.EffectiveYearQuarterEnd;
                dept.Name = entity.Name;
                dept.UrlFriendlyName = entity.UrlName;

                try
                {
                    ctx.SubmitChanges();
                    result = true;

                }
                catch (Exception ex)
                {
                    throw new Exception("Unable to add Department: " + ex.Message);
                }

            }

            return result;
        }
        public DepartmentAddEditModel GetDepartmentForEdit(int id)
        {
            DepartmentAddEditModel result = new DepartmentAddEditModel();

            using (ScheduleDataContext ctx = new ScheduleDataContext())
            {
                try
                {
                    var item = ctx.Departments.Where(s=>s.DepartmentID == id).SingleOrDefault<Department>();

                                    result.DepartmentID = item.DepartmentID;
                                    result.Name = item.Name;
                                    result.UrlName = item.UrlFriendlyName;
                                    result.EffectiveYearQuarterBegin = item.EffectiveYearQuarterBegin;
                                    result.EffectiveYearQuarterEnd = item.EffectiveYearQuarterEnd;
                                    result.Contact = item.Contact;
                                    result.Description = item.Description;

                }
                catch (Exception ex)
                {
                    throw new SystemException("Cannot get department. " + ex.Message);
                }
            }

            return result;
        }
        public bool AddNewDepartment(DepartmentAddEditModel entity)
        {
            bool result = false;

            using (ScheduleDataContext ctx = new ScheduleDataContext())
            {

                Department dept = new Department();

                if (entity.Description == "")
                {
                    entity.Description = " ";
                }

                dept.Contact = entity.Contact;
                dept.Description = entity.Description;
                dept.EffectiveYearQuarterBegin = entity.EffectiveYearQuarterBegin;
                dept.EffectiveYearQuarterEnd = entity.EffectiveYearQuarterEnd;
                dept.Name = entity.Name;
                dept.UrlFriendlyName = entity.UrlName;

                ctx.Departments.InsertOnSubmit(dept);

                try
                {
                    ctx.SubmitChanges();
                    result = true;

                }
                catch (Exception ex)
                {
                    throw new Exception("Unable to add Department: " + ex.Message);
                }

            }

            return result;
        }