protected void rowToData(DataRow dr, EventCalendarCategoryData entity)
 {
     entity.CategoryId  = Convert.ToInt32(dr["CategoryId"]);
     entity.Lang        = new CmsLanguage(dr["LangCode"].ToString());
     entity.ColorHex    = dr["ColorHex"].ToString();
     entity.Title       = dr["Title"].ToString();
     entity.Description = dr["Description"].ToString();
 }
        /// <summary>
        /// Update event category
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool updateCategoryData(EventCalendarCategoryData entity)
        {
            StringBuilder sql = new StringBuilder("UPDATE ");

            sql.Append(TableNameCategory);
            sql.Append(" SET ColorHex='" + dbEncode(entity.ColorHex) + "',");
            sql.Append(" Title='" + dbEncode(entity.Title) + "',");
            sql.Append(" Description='" + dbEncode(entity.Description) + "'");
            sql.Append(" WHERE CategoryId=" + entity.CategoryId.ToString());
            sql.Append(" AND LangCode='" + dbEncode(entity.Lang.shortCode) + "';");

            int affected = this.RunUpdateQuery(sql.ToString());

            return(affected > 0);
        }
        /// <summary>
        /// Select all the event categories
        /// </summary>
        /// <returns></returns>
        public List <EventCalendarCategoryData> fetchCategoryList()
        {
            StringBuilder sql = new StringBuilder("SELECT CategoryId,LangCode,ColorHex,Title,Description FROM ");

            sql.Append(TableNameCategory);
            sql.Append(" ORDER BY CategoryId, LangCode;");

            DataSet ds = this.RunSelectQuery(sql.ToString());

            List <EventCalendarCategoryData> list = new List <EventCalendarCategoryData>();

            if (this.hasRows(ds))
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    EventCalendarCategoryData entity = new EventCalendarCategoryData();
                    rowToData(dr, entity);
                    list.Add(entity);
                }
            }
            return(list);
        }
        /// <summary>
        /// Select an event category by language and category id
        /// </summary>
        /// <param name="lang"></param>
        /// <param name="categoryId"></param>
        /// <returns></returns>
        public EventCalendarCategoryData fetchCategoryByIdAndLang(CmsLanguage lang, int categoryId)
        {
            StringBuilder sql = new StringBuilder("SELECT CategoryId,LangCode,ColorHex,Title,Description FROM ");

            sql.Append(TableNameCategory);
            sql.Append(" WHERE CategoryId=" + categoryId.ToString());
            sql.Append(" AND LangCode='" + dbEncode(lang.shortCode) + "';");

            DataSet ds = this.RunSelectQuery(sql.ToString());

            EventCalendarCategoryData entity = new EventCalendarCategoryData();

            if (this.hasSingleRow(ds) == false)
            {
                return(entity);
            }

            DataRow dr = ds.Tables[0].Rows[0];

            rowToData(dr, entity);

            return(entity);
        }
        /// <summary>
        /// Insert event category
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool insertCategoryData(EventCalendarCategoryData entity)
        {
            StringBuilder sql = new StringBuilder("INSERT INTO ");

            sql.Append(TableNameCategory);
            sql.Append(" (CategoryId,LangCode,ColorHex,Title,Description) VALUES (");
            sql.Append(entity.CategoryId.ToString() + ",'");
            sql.Append(dbEncode(entity.Lang.shortCode) + "','");
            sql.Append(dbEncode(entity.ColorHex) + "','");
            sql.Append(dbEncode(entity.Title) + "','");
            sql.Append(dbEncode(entity.Description) + "');");

            int affected = this.RunUpdateQuery(sql.ToString());

            if (affected > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }