public EventCalendarAggregatorData fetchAggregatorData(CmsPage page, int identifier, CmsLanguage lang, bool createIfNotExist)
        {
            if (page.ID < 0 || identifier < 0)
            {
                return(new EventCalendarAggregatorData());
            }

            StringBuilder sql = new StringBuilder("SELECT ViewMode FROM ");

            sql.Append(TableNameAggregator);
            sql.Append(" WHERE PageId=" + page.ID.ToString());
            sql.Append(" AND LangCode='" + lang.shortCode + "'");
            sql.Append(" AND Identifier=" + identifier.ToString());
            sql.Append(" AND Deleted IS NULL;");

            EventCalendarAggregatorData entity = new EventCalendarAggregatorData();
            DataSet ds = this.RunSelectQuery(sql.ToString());

            if (this.hasSingleRow(ds))
            {
                DataRow dr = ds.Tables[0].Rows[0];
                rowToData(dr, entity);
            }
            else
            {
                if (createIfNotExist)
                {
                    if (insertAggregatorData(page, identifier, lang, entity) == false)
                    {
                        throw new Exception("EventCalendarDb.fetchAggregatorData() database error: Error creating new placeholder");
                    }
                }
                else
                {
                    throw new Exception("EventCalendarDb.fetchAggregatorData() database error: placeholder does not exist");
                }
            }
            return(entity);
        }
 protected void rowToData(DataRow dr, EventCalendarAggregatorData entity)
 {
     entity.ViewMode = (CalendarViewMode)Enum.Parse(typeof(CalendarViewMode), dr["ViewMode"].ToString());
 }
        public bool insertAggregatorData(CmsPage page, int identifier, CmsLanguage lang, EventCalendarAggregatorData entity)
        {
            StringBuilder sql = new StringBuilder("INSERT INTO ");

            sql.Append(TableNameAggregator);
            sql.Append(" (PageId,Identifier,LangCode,ViewMode) VALUES (");
            sql.Append(page.ID.ToString() + ",");
            sql.Append(identifier.ToString() + ",'");
            sql.Append(dbEncode(lang.shortCode) + "','");
            sql.Append(entity.ViewMode.ToString() + "');");

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

            if (affected > 0)
            {
                return(page.setLastUpdatedDateTimeToNow());
            }
            else
            {
                return(false);
            }
        }
        public bool updateAggregatorData(CmsPage page, int identifier, CmsLanguage lang, EventCalendarAggregatorData entity)
        {
            StringBuilder sql = new StringBuilder("UPDATE ");

            sql.Append(TableNameAggregator);
            sql.Append(" SET ViewMode = '" + entity.ViewMode.ToString() + "'");

            sql.Append(" WHERE PageId=" + page.ID.ToString());
            sql.Append(" AND LangCode='" + lang.shortCode + "'");
            sql.Append(" AND Identifier=" + identifier.ToString());

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

            return(affected > 0);
        }