/// <summary>
        /// Delete a single TaskType
        /// </summary>
        /// <param name="dc">DataContext</param>
        /// <param name="taskType"></param>
        public void Delete(DataContext dc, Domain.TaskType taskType)
        {
            dc = dc ?? Conn.GetContext();
            var dbTaskType = dc.TaskTypes.Where(t => t.TaskTypeId == taskType.ID).SingleOrDefault();

            if (dbTaskType == null)
            {
                return;
            }
            dc.TaskTypes.Attach(dbTaskType, true);
            dc.TaskTypes.DeleteOnSubmit(dbTaskType);
            dc.SubmitChanges();
        }
        /// <summary>
        /// Find TaskType by it's Enum type
        /// </summary>
        /// <param name="dc"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public Domain.TaskType Find(DataContext dc, TaskTypes type)
        {
            var result = All(dc).Where(t => t.Name == type.ToString()).SingleOrDefault();

            if (result == null)
            {
                result = new Domain.TaskType
                {
                    Name = type.ToString(),
                    Type = type
                };
                result.Save();
            }

            return(result);
        }
        /// <summary>
        /// Save a TaskType
        /// </summary>
        /// <param name="dc">DataContext</param>
        /// <param name="taskType"></param>
        /// <returns>returns the id of the saved taskType</returns>
        public int Save(DataContext dc, Domain.TaskType taskType)
        {
            dc = dc ?? Conn.GetContext();
            var dcTaskType = dc.TaskTypes.Where(t => t.TaskTypeId == taskType.ID).SingleOrDefault();
            var isNew      = false;

            if (dcTaskType == null)
            {
                dcTaskType = new DataAccess.SqlRepository.TaskType();
                isNew      = true;
            }

            dcTaskType.Name = taskType.Name;

            if (isNew)
            {
                dc.TaskTypes.InsertOnSubmit(dcTaskType);
            }
            dc.SubmitChanges();
            return(dcTaskType.TaskTypeId);
        }
        /// <summary>
        /// Find TaskType by it's Enum type
        /// </summary>
        /// <param name="dc"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public Domain.TaskType Find(DataContext dc, TaskTypes type)
        {
            var result = All(dc).Where(t => t.Name == type.ToString()).SingleOrDefault();
            if (result == null)
            {
                result = new Domain.TaskType
                {
                    Name = type.ToString(),
                    Type = type
                };
                result.Save();
            }

            return result;
        }