/// <summary> /// Проверяет возможность добавления мероприятия с данным интервалом. /// </summary> /// <param name="ConferenceHallID">ID комнаты.</param> /// <param name="ArrangementID">ID мероприятия (при редактировании).</param> /// <param name="dBegin">Дата начала.</param> /// <param name="dEnd">Дата конца.</param> /// <returns>Возможно ли добавление.</returns> public static bool CheckArrangementAdding(int ConferenceHallID, int ArrangementID, DateTime dBegin, DateTime dEnd) { String sql = "SELECT a.* FROM "; sql += DBAttributesManager.GetDBTableName(typeof(ConfirmIt.PortalLib.Arrangements.Arrangement)) + " a, "; sql += DBAttributesManager.GetDBTableName(typeof(ArrangementDate)) + " b"; //compare time only from Arrangement table sql += " WHERE (CONVERT(char(12), a.TimeBegin, 114) <= CONVERT(char(12), @pDateBegin, 114)" + "and CONVERT(char(12), a.TimeEnd, 114) > CONVERT(char(12), @pDateEnd, 114)"; sql += " AND (b.ArrangementID=a.ID)"; //compare date only from ArrangementDate table sql += " AND CONVERT(char(8), b.Date, 112)=CONVERT(char(8), @pDateBegin, 112))"; //compare time only from Arrangement table sql += " OR (CONVERT(char(12), a.TimeBegin, 114) >= CONVERT(char(12), @pDateBegin, 114)" + "and CONVERT(char(12), a.TimeEnd, 114) <= CONVERT(char(12), @pDateEnd, 114)"; sql += " AND (b.ArrangementID=a.ID)"; //compare date only from ArrangementDate table sql += " AND CONVERT(char(8), b.Date, 112)=CONVERT(char(8), @pDateBegin, 112))"; //compare time only from Arrangement table sql += " OR (CONVERT(char(12), a.TimeBegin, 114) < CONVERT(char(12), @pDateEnd, 114)" + "and CONVERT(char(12), a.TimeEnd, 114) >= CONVERT(char(12), @pDateEnd, 114)"; sql += " AND (b.ArrangementID=a.ID)"; //compare date only from ArrangementDate table sql += " AND CONVERT(char(8), b.Date, 112)=CONVERT(char(8), @pDateBegin, 112))"; sql += " AND (a.ID != " + ArrangementID + ")"; //sql += " WHERE ((a.TimeBegin <= @pDateBegin and a.TimeEnd > @pDateBegin)"; //sql += " or (a.TimeBegin >= @pDateBegin and a.TimeEnd <= @pDateEnd)"; //sql += " or (a.TimeBegin < @pDateEnd and a.TimeEnd >= @pDateEnd))"; Query q = new Query(sql); q.Add("@pDateBegin", dBegin, DbType.Time); q.Add("@pDateEnd", dEnd, DbType.Time); q.Command.CommandText += " AND (a.ConferenceHallID=" + ConferenceHallID + ")"; if (ArrangementID != 0) q.Command.CommandText += " AND (a.ID<>" + ArrangementID + ")"; DataTable dt = q.ExecDataTable(); if (dt.Rows.Count == 0) return true; else return false; }
/// <summary> /// Is this arrangement cyclic /// </summary> public static bool isCyclicArrangement(int ArrID) { String sql = "SELECT * FROM "; sql += DBAttributesManager.GetDBTableName(typeof(ArrangementDate)); sql += " WHERE ArrangementID=" + ArrID; Query q = new Query(sql); DataTable dt = q.ExecDataTable(); if (dt.Rows.Count > 1) return true; else return false; }
/// <summary> /// Возвращает таблицу "разрешенных" тегов. /// </summary> /// <returns></returns> public static DataTable GetAllowTags() { String query = "SELECT tagName from AllowTags"; Query q = new Query(query); DataTable dt = q.ExecDataTable(); return dt; }