public int CreateCategory(CategoryModel cm)
        {
            int result = DaoUtilities.NO_CHANGES;

            CATEGORY c = db.CATEGORY.Create();

            c.CAT_ID = cm.CategoryId;
            c.CAT_NAME = cm.Name;
            c.CAT_DESCR = cm.Description;
            c.CAT_VALIDATIONDATE = cm.ValidationDate;
            c.CAT_PARENT = cm.ParentId;

            db.CATEGORY.Add(c);
            try
            {
                int saveResult = db.SaveChanges();

                if (saveResult == 1)
                    result = DaoUtilities.SAVE_SUCCESSFUL;
            }
            catch (DbUpdateConcurrencyException e)
            {
                Console.WriteLine(e.GetBaseException().ToString());
                result = DaoUtilities.UPDATE_CONCURRENCY_EXCEPTION;
            }
            catch (DbUpdateException e)
            {
                Console.WriteLine(e.GetBaseException().ToString());
                result = DaoUtilities.UPDATE_EXCEPTION;
            }
            catch (DbEntityValidationException e)
            {
                Console.WriteLine(e.GetBaseException().ToString());
                result = DaoUtilities.ENTITY_VALIDATION_EXCEPTION;
            }
            catch (NotSupportedException e)
            {
                Console.WriteLine(e.GetBaseException().ToString());
                result = DaoUtilities.UNSUPPORTED_EXCEPTION;
            }
            catch (ObjectDisposedException e)
            {
                Console.WriteLine(e.GetBaseException().ToString());
                result = DaoUtilities.DISPOSED_EXCEPTION;
            }
            catch (InvalidOperationException e)
            {
                Console.WriteLine(e.GetBaseException().ToString());
                result = DaoUtilities.INVALID_OPERATION_EXCEPTION;
            }
            return result;
        }
        public int DeleteCategory(CategoryModel cm)
        {
            int result = DaoUtilities.NO_CHANGES;

            CATEGORY c = db.CATEGORY.Find(cm.CategoryId);

            if (c != null)
            {
                db.CATEGORY.Remove(c);
                try
                {
                    int saveResult = db.SaveChanges();

                    if (saveResult == 1)
                        result = DaoUtilities.SAVE_SUCCESSFUL;
                }
                catch (DbUpdateConcurrencyException e)
                {
                    Console.WriteLine(e.GetBaseException().ToString());
                    result = DaoUtilities.UPDATE_CONCURRENCY_EXCEPTION;
                }
                catch (DbUpdateException e)
                {
                    Console.WriteLine(e.GetBaseException().ToString());
                    result = DaoUtilities.UPDATE_EXCEPTION;
                }
                catch (DbEntityValidationException e)
                {
                    Console.WriteLine(e.GetBaseException().ToString());
                    result = DaoUtilities.ENTITY_VALIDATION_EXCEPTION;
                }
                catch (NotSupportedException e)
                {
                    Console.WriteLine(e.GetBaseException().ToString());
                    result = DaoUtilities.UNSUPPORTED_EXCEPTION;
                }
                catch (ObjectDisposedException e)
                {
                    Console.WriteLine(e.GetBaseException().ToString());
                    result = DaoUtilities.DISPOSED_EXCEPTION;
                }
                catch (InvalidOperationException e)
                {
                    Console.WriteLine(e.GetBaseException().ToString());
                    result = DaoUtilities.INVALID_OPERATION_EXCEPTION;
                }
            }

            return result;
        }
        /// <summary>
        /// Convert a category from the database to a CategoryModel
        /// </summary>
        /// <param name="c"></param>
        /// <returns></returns>
        public CategoryModel ConvertCategoryToCategoryModel(CATEGORY c)
        {
            CategoryModel cm = new CategoryModel();

            if (c != null)
            {
                cm.CategoryId = c.CAT_ID;
                cm.Name = c.CAT_NAME;
                cm.Description = c.CAT_DESCR;
                cm.ValidationDate = c.CAT_VALIDATIONDATE;
                cm.ParentId = c.CAT_PARENT;
            }
            else
                cm = null;

            return cm;
        }