当前位置: 首页>>代码示例>>C#>>正文


C# IClientAPI.SendDirEventsReply方法代码示例

本文整理汇总了C#中IClientAPI.SendDirEventsReply方法的典型用法代码示例。如果您正苦于以下问题:C# IClientAPI.SendDirEventsReply方法的具体用法?C# IClientAPI.SendDirEventsReply怎么用?C# IClientAPI.SendDirEventsReply使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IClientAPI的用法示例。


在下文中一共展示了IClientAPI.SendDirEventsReply方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DirEventsQuery

        public void DirEventsQuery(IClientAPI remoteClient, UUID queryID,
                                   string queryText, uint queryFlags, int queryStart)
        {
            DirEventsReplyData[] ReturnValues = directoryService.FindEvents(queryText, queryFlags.ToString(), queryStart);

            //Split into sets of 10 packets
            if (ReturnValues.Length > 10)
            {
                DirEventsReplyData[] data = new DirEventsReplyData[10];
                int i = 0;

                foreach (DirEventsReplyData d in ReturnValues)
                {
                    data[i] = d;
                    i++;
                    if (i == 10)
                    {
                        remoteClient.SendDirEventsReply(queryID, data);
                        i = 0;
                        if (data.Length - i < 10)
                            data = new DirEventsReplyData[data.Length - i];
                        else
                            data = new DirEventsReplyData[10];
                    }
                }
                //Send the remaining packets
                if(data.Length != 0)
                    remoteClient.SendDirEventsReply(queryID, data);
            }
            else //Send the remaining as they are under 10
                remoteClient.SendDirEventsReply(queryID, ReturnValues);
        }
开发者ID:WordfromtheWise,项目名称:Aurora,代码行数:32,代码来源:AuroraSearchModule.cs

示例2: DirEventsQuery

        public void DirEventsQuery(IClientAPI remoteClient, UUID queryID, string queryText, uint queryFlags, int queryStart)
        {
            // Flags are going to be 0 or 32 for Mature
            // We also know text comes in 3 segments X|Y|Text where X is the day difference from 
            // the current day, Y is the category to search, Text is the user input for search string
            // so let's 'split up the queryText to get our values we need first off
            string eventTime = String.Empty;
            string eventCategory = String.Empty;
            string userText = String.Empty;

            queryText = queryText.Trim();   // newer viewers sometimes append a space

            string[] querySplode = queryText.Split(new Char[] { '|' });
            if (querySplode.Length > 0)
                eventTime = querySplode[0];
            if (querySplode.Length > 1)
                eventCategory = querySplode[1];
            if (querySplode.Length > 0)
            {
                userText = querySplode[2];
                userText = userText.Trim();   // newer viewers sometimes append a space
            }

            // Ok we have values, now we need to do something with all this lovely information
            string query = String.Empty;
            string searchStart = Convert.ToString(queryStart);
            int count = 100;
            DirEventsReplyData[] data = new DirEventsReplyData[count];
            string searchEnd = Convert.ToString(queryStart + count);
            int i = 0;
            int unixEventUpcomingEndDateToCheck = 0;

            int eventTimeAmt = 0;
            int unixEventDateToCheckMidnight = 0;
            int unixEventEndDateToCheckMidnight = 0;

            string sqlAddTerms = String.Empty;

            DateTime saveNow = DateTime.Now;
            int startDateCheck;

            // Quick catch to see if the eventTime is set to "u" for In Progress & Upcoming Radio button
            if (eventTime == "u")
            {
                DateTime eventUpcomingEndDateToCheck = saveNow.AddDays(+7);
                DateTime eventUpcomingEndDateToCheckMidnight = new DateTime(eventUpcomingEndDateToCheck.Year, eventUpcomingEndDateToCheck.Month, eventUpcomingEndDateToCheck.Day);
                unixEventUpcomingEndDateToCheck = Util.ToUnixTime(eventUpcomingEndDateToCheckMidnight);

                // for "in progress" events, show everything that has started within the last three hours (arbitrary)
                startDateCheck = Util.ToUnixTime(saveNow.AddHours(-3.0));
                sqlAddTerms = " where (dateUTC>=?startDateCheck AND dateUTC<=?unixEventUpcomingEndDateToCheck)";
            }
            else
            {
                // we need the current date, in order to subtract/add the days to view, or see the week upcoming.
                // this will probably be some really ugly code :)
                startDateCheck = Util.ToUnixTime(saveNow);
                eventTimeAmt = Convert.ToInt16(eventTime);
                DateTime eventDateToCheck = saveNow.AddDays(Convert.ToInt16(eventTime));
                DateTime eventEndDateToCheck = new DateTime();
                if (eventTime == "0")
                {
                    eventEndDateToCheck = saveNow.AddDays(+2);
                }
                else
                {
                    eventEndDateToCheck = saveNow.AddDays(eventTimeAmt  + 1);
                }
                // now truncate the information so we get the midnight value (and yes David, I'm sure there's an 
                // easier way to do this, but this will work for now :)  )
                DateTime eventDateToCheckMidnight = new DateTime(eventDateToCheck.Year, eventDateToCheck.Month, eventDateToCheck.Day);
                DateTime eventEndDateToCheckMidnight = new DateTime(eventEndDateToCheck.Year, eventEndDateToCheck.Month, eventEndDateToCheck.Day);


                // this is the start unix timestamp to look for, we still need the end which is the next day, plus
                // we need the week end unix timestamp for the In Progress & upcoming radio button
                unixEventDateToCheckMidnight = Util.ToUnixTime(eventDateToCheckMidnight);
                unixEventEndDateToCheckMidnight = Util.ToUnixTime(eventEndDateToCheckMidnight);

                sqlAddTerms = " where (dateUTC>=?unixEventDateToCheck AND dateUTC<=?unixEventEndDateToCheckMidnight)";
            }

            if ((queryFlags & ((uint)DirFindFlags.IncludeAdult|(uint)DirFindFlags.IncludeAdult|(uint)DirFindFlags.IncludeAdult)) == 0)
            {
                // don't just give them an empty list...
                remoteClient.SendAlertMessage("You must included at least one maturity rating.");
                remoteClient.SendDirEventsReply(queryID, data);
                return;
            }

            // Event DB storage does not currently support adult events, so if someone asks for adult, search mature for now.
            if ((queryFlags & (uint)DirFindFlags.IncludeAdult) != 0)
                queryFlags |= (uint)DirFindFlags.IncludeMature;

            if ((queryFlags & (uint)DirFindFlags.IncludeMature) != 0)
            {
                // they included mature and possibly others
                if ((queryFlags & (uint)DirFindFlags.IncludePG) == 0)
                    sqlAddTerms += " AND mature='true'";   // exclude PG
            }
//.........这里部分代码省略.........
开发者ID:MatthewBeardmore,项目名称:halcyon,代码行数:101,代码来源:AvatarSearchModule.cs

示例3: DirEventsQuery

        public void DirEventsQuery(IClientAPI remoteClient, UUID queryID,
                string queryText, uint queryFlags, int queryStart)
        {
            Hashtable ReqHash = new Hashtable();
            ReqHash["text"] = queryText;
            ReqHash["flags"] = queryFlags.ToString();
            ReqHash["query_start"] = queryStart.ToString();

            Hashtable result = GenericXMLRPCRequest(ReqHash,
                    "dir_events_query");

            if (!Convert.ToBoolean(result["success"]))
            {
                remoteClient.SendAgentAlertMessage(
                        result["errorMessage"].ToString(), false);
                return;
            }

            ArrayList dataArray = (ArrayList)result["data"];

            int count = dataArray.Count;
            if (count > 100)
                count = 101;

            DirEventsReplyData[] data = new DirEventsReplyData[count];

            int i = 0;

            foreach (Object o in dataArray)
            {
                Hashtable d = (Hashtable)o;

                data[i] = new DirEventsReplyData();
                data[i].ownerID = new UUID(d["owner_id"].ToString());
                data[i].name = d["name"].ToString();
                data[i].eventID = Convert.ToUInt32(d["event_id"]);
                data[i].date = d["date"].ToString();
                data[i].unixTime = Convert.ToUInt32(d["unix_time"]);
                data[i].eventFlags = Convert.ToUInt32(d["event_flags"]);

                if (++i >= count)
                    break;
            }

            remoteClient.SendDirEventsReply(queryID, data);
        }
开发者ID:Barosonix,项目名称:Barosonix-Search-Module,代码行数:46,代码来源:OpenSearch.cs

示例4: DirEventsQuery

        public void DirEventsQuery(IClientAPI remoteClient, UUID queryID,
                                   string queryText, uint queryFlags, int queryStart)
        {
            DirEventsReplyData[] ReturnValues = DSC.FindEvents(queryText, queryFlags.ToString(), queryStart);

            if (ReturnValues.Length > 10)
            {
                DirEventsReplyData[] data = new DirEventsReplyData[10];
                int i = 0;

                foreach (DirEventsReplyData d in ReturnValues)
                {
                    data[i] = d;
                    i++;
                    if (i == 10)
                    {
                        remoteClient.SendDirEventsReply(queryID, data);
                        i = 0;
                        if (data.Length - i < 10)
                        {
                            data = new DirEventsReplyData[data.Length - i];
                        }
                        else
                        {
                            data = new DirEventsReplyData[10];
                        }
                    }
                }
                remoteClient.SendDirEventsReply(queryID, data);
            }
            else
                remoteClient.SendDirEventsReply(queryID, ReturnValues);
        }
开发者ID:shangcheng,项目名称:Aurora,代码行数:33,代码来源:AuroraSearchModule.cs


注:本文中的IClientAPI.SendDirEventsReply方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。