public List<DirEventsReplyData> FindAllEventsInRegion(string regionName, int maturity) { object remoteValue = DoRemote(regionName, maturity); if (remoteValue != null || m_doRemoteOnly) return (List<DirEventsReplyData>) remoteValue; List<DirEventsReplyData> Data = new List<DirEventsReplyData>(); IRegionData regiondata = Framework.Utilities.DataManager.RequestPlugin<IRegionData>(); if (regiondata != null) { List<GridRegion> regions = regiondata.Get(regionName, null, null, null); if (regions.Count >= 1) { QueryFilter filter = new QueryFilter(); filter.andFilters["region"] = regions[0].RegionID.ToString(); filter.andFilters["maturity"] = maturity; List<string> retVal = GD.Query(new[] { "EID", "creator", "date", "maturity", "flags", "name" }, "asevents", filter, null, null, null); if (retVal.Count > 0) { for (int i = 0; i < retVal.Count; i += 6) { DirEventsReplyData replyData = new DirEventsReplyData { eventID = Convert.ToUInt32(retVal[i]), ownerID = new UUID(retVal[i + 1]), name = retVal[i + 5], }; DateTime date = DateTime.Parse(retVal[i + 2]); replyData.date = date.ToString(new DateTimeFormatInfo()); replyData.unixTime = (uint) Util.ToUnixTime(date); replyData.eventFlags = Convert.ToUInt32(retVal[i + 4]); Data.Add(replyData); } } } } return Data; }
public List<DirEventsReplyData> FindEvents(string queryText, uint eventFlags, int StartQuery, UUID scopeID) { object remoteValue = DoRemote(queryText, eventFlags, StartQuery, scopeID); if (remoteValue != null || m_doRemoteOnly) return (List<DirEventsReplyData>) remoteValue; List<DirEventsReplyData> Data = new List<DirEventsReplyData>(); QueryFilter filter = new QueryFilter(); //|0| means search between some days if (queryText.Contains("|0|")) { string StringDay = queryText.Split('|')[0]; if (StringDay == "u") //"u" means search for events that are going on today { filter.andGreaterThanEqFilters["UNIX_TIMESTAMP(date)"] = Util.ToUnixTime(DateTime.Today); } else { //Pull the day out then and search for that many days in the future/past int Day = int.Parse(StringDay); DateTime SearchedDay = DateTime.Today.AddDays(Day); //We only look at one day at a time DateTime NextDay = SearchedDay.AddDays(1); filter.andGreaterThanEqFilters["UNIX_TIMESTAMP(date)"] = Util.ToUnixTime(SearchedDay); filter.andLessThanEqFilters["UNIX_TIMESTAMP(date)"] = Util.ToUnixTime(NextDay); filter.andLessThanEqFilters["flags"] = (int) eventFlags; } } else { filter.andLikeFilters["name"] = "%" + queryText + "%"; } if (scopeID != UUID.Zero) filter.andFilters["scopeID"] = scopeID; List<string> retVal = GD.Query(new[] { "EID", "creator", "date", "maturity", "flags", "name" }, "asevents", filter, null, (uint) StartQuery, 50); if (retVal.Count > 0) { for (int i = 0; i < retVal.Count; i += 6) { DirEventsReplyData replyData = new DirEventsReplyData { eventID = Convert.ToUInt32(retVal[i]), ownerID = new UUID(retVal[i + 1]), name = retVal[i + 5], }; DateTime date = DateTime.Parse(retVal[i + 2]); replyData.date = date.ToString(new DateTimeFormatInfo()); replyData.unixTime = (uint) Util.ToUnixTime(date); replyData.eventFlags = Convert.ToUInt32(retVal[i + 4]); //Check the maturity levels uint maturity = Convert.ToUInt32(retVal[i + 3]); if ( (maturity == 0 && (eventFlags & (uint) EventFlags.PG) == (uint) EventFlags.PG) || (maturity == 1 && (eventFlags & (uint) EventFlags.Mature) == (uint) EventFlags.Mature) || (maturity == 2 && (eventFlags & (uint) EventFlags.Adult) == (uint) EventFlags.Adult) ) { Data.Add(replyData); } } } return Data; }
public List<DirEventsReplyData> FindEvents(string queryText, uint eventFlags, int StartQuery, UUID scopeID) { if (m_doRemoteOnly) { object remoteValue = DoRemote (queryText, eventFlags, StartQuery, scopeID); return remoteValue != null ? (List<DirEventsReplyData>)remoteValue : new List<DirEventsReplyData> (); } List<DirEventsReplyData> eventdata = new List<DirEventsReplyData>(); QueryFilter filter = new QueryFilter(); var queryList = queryText.Split ('|'); string stringDay = queryList[0]; if (stringDay == "u") //"u" means search for events that are going on today { filter.andGreaterThanEqFilters["UNIX_TIMESTAMP(date)"] = Util.ToUnixTime(DateTime.Today); } else { //Pull the day out then and search for that many days in the future/past int Day = int.Parse(stringDay); DateTime SearchedDay = DateTime.Today.AddDays(Day); //We only look at one day at a time DateTime NextDay = SearchedDay.AddDays(1); filter.andGreaterThanEqFilters["UNIX_TIMESTAMP(date)"] = Util.ToUnixTime(SearchedDay); filter.andLessThanEqFilters["UNIX_TIMESTAMP(date)"] = Util.ToUnixTime(NextDay); filter.andLessThanEqFilters["flags"] = (int) (eventFlags >> 24) & 0x7; } // do we have category? if (queryList[1] != "0") filter.andLikeFilters ["category"] = queryList [1]; // do we have search parameters if (queryList.Length == 3) filter.andLikeFilters["name"] = "%" + queryList[2] + "%"; //} if (scopeID != UUID.Zero) filter.andFilters["scopeID"] = scopeID; List<string> retVal = GD.Query(new[] { "EID", "creator", "date", "maturity", "flags", "name", }, m_eventInfoTable, filter, null, (uint)StartQuery, 50); if (retVal.Count > 0) { for (int i = 0; i < retVal.Count; i += 6) { DirEventsReplyData replyData = new DirEventsReplyData { eventID = Convert.ToUInt32 (retVal [i]), ownerID = new UUID (retVal [i + 1]), name = retVal [i + 5], }; DateTime date = DateTime.Parse (retVal [i + 2]); replyData.date = date.ToString (new DateTimeFormatInfo ()); replyData.unixTime = (uint)Util.ToUnixTime (date); replyData.eventFlags = Convert.ToUInt32 (retVal [i + 3]) >> 1; // convert event maturity back to EventData.maturity 0,1,2 //Check the maturity levels var maturity = Convert.ToByte (retVal [i + 3]); // db levels 1,2,4 uint reqMaturityflags = (eventFlags >> 24) & 0x7; if ( (maturity & reqMaturityflags) > 0) eventdata.Add (replyData); } } else eventdata.Add( new DirEventsReplyData ()); return eventdata; }