示例#1
0
        public EventData CreateEvent(UUID creator, UUID regionID, UUID parcelID, DateTime date, uint cover, EventFlags maturity, uint flags, uint duration, Vector3 localPos, string name, string description, string category)
        {
            Dictionary <string, object> sendData = new Dictionary <string, object>();

            sendData["METHOD"]      = "CreateEvent";
            sendData["Creator"]     = creator;
            sendData["RegionID"]    = regionID;
            sendData["ParcelID"]    = parcelID;
            sendData["Date"]        = date;
            sendData["Cover"]       = cover;
            sendData["Maturity"]    = maturity;
            sendData["Flags"]       = flags;
            sendData["Duration"]    = duration;
            sendData["LocalPos"]    = localPos;
            sendData["Name"]        = name;
            sendData["Description"] = description;
            sendData["Category"]    = category;


            string reqString = WebUtils.BuildQueryString(sendData);

            try
            {
                List <string> m_ServerURIs =
                    m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf("RemoteServerURI");
                foreach (EventData eventdata in from m_ServerURI in m_ServerURIs
                         select SynchronousRestFormsRequester.MakeRequest("POST",
                                                                          m_ServerURI,
                                                                          reqString) into reply
                         where reply != string.Empty
                         select WebUtils.ParseXmlResponse(reply) into replyData
                         from object f in replyData
                         select(KeyValuePair <string, object>) f into value
                         where value.Value is Dictionary <string, object>
                         select value.Value as Dictionary <string, object> into valuevalue
                         select new EventData(valuevalue))
                {
                    return(eventdata);
                }
            }
            catch (Exception e)
            {
                MainConsole.Instance.DebugFormat("[AuroraRemoteDirectoryServiceConnector]: Exception when contacting server: {0}", e);
            }
            return(null);
        }
        public EventData CreateEvent(UUID creator, UUID regionID, UUID parcelID, DateTime date, uint cover, EventFlags maturity, uint flags, uint duration, Vector3 localPos, string name, string description, string category)
        {
            IRegionData             regiondata = Aurora.DataManager.DataManager.RequestPlugin <IRegionData>();
            IParcelServiceConnector parceldata = Aurora.DataManager.DataManager.RequestPlugin <IParcelServiceConnector>();

            if (regiondata == null || parceldata == null)
            {
                return(null);
            }

            GridRegion region = regiondata.Get(regionID, UUID.Zero);

            if (region == null)
            {
                return(null);
            }
            if (parcelID != UUID.Zero)
            {
                LandData parcel = parceldata.GetLandData(region.RegionID, parcelID);
                if (parcel == null)
                {
                    return(null);
                }
            }


            EventData eventData = new EventData();

            eventData.eventID    = GetMaxEventID() + 1;
            eventData.creator    = creator.ToString();
            eventData.simName    = region.RegionName;
            eventData.date       = date.ToString(new DateTimeFormatInfo());
            eventData.dateUTC    = (uint)Util.ToUnixTime(date);
            eventData.cover      = eventData.amount = cover;
            eventData.maturity   = (int)maturity;
            eventData.eventFlags = flags | (uint)maturity;
            eventData.duration   = duration;
            eventData.globalPos  = new Vector3(
                region.RegionLocX + localPos.X,
                region.RegionLocY + localPos.Y,
                region.RegionLocZ + localPos.Z
                );
            eventData.name        = name;
            eventData.description = description;
            eventData.category    = category;

            GD.Insert("asevents", new string[] {
                "EID",
                "creator",
                "region",
                "parcel",
                "date",
                "cover",
                "maturity",
                "flags",
                "duration",
                "localPosX",
                "localPosY",
                "localPosZ",
                "name",
                "description",
                "category"
            }, new object[] {
                eventData.eventID,
                creator.ToString(),
                regionID.ToString(),
                parcelID.ToString(),
                date.ToString("s"),
                eventData.cover,
                (uint)maturity,
                flags,
                duration,
                localPos.X,
                localPos.Y,
                localPos.Z,
                name,
                description,
                category
            });

            return(eventData);
        }
        public EventData CreateEvent(UUID creator, UUID regionID, UUID parcelID, DateTime date, uint cover, EventFlags maturity, uint flags, uint duration, Vector3 localPos, string name, string description, string category)
        {
            object remoteValue = DoRemote(creator, regionID, parcelID, date, cover, maturity, flags, duration, localPos, name, description, category);
            if (remoteValue != null || m_doRemoteOnly)
                return (EventData)remoteValue;

            IRegionData regiondata = DataManager.DataManager.RequestPlugin<IRegionData>();
            IParcelServiceConnector parceldata = DataManager.DataManager.RequestPlugin<IParcelServiceConnector>();
            if(regiondata == null || parceldata == null){
                return null;
            }

            GridRegion region = regiondata.Get(regionID, null);
            if(region == null){
                return null;
            }
            if (parcelID != UUID.Zero)
            {
                LandData parcel = parceldata.GetLandData(region.RegionID, parcelID);
                if (parcel == null)
                {
                    return null;
                }
            }


            EventData eventData = new EventData
                                      {
                                          eventID = GetMaxEventID() + 1,
                                          creator = creator.ToString(),
                                          simName = region.RegionName,
                                          date = date.ToString(new DateTimeFormatInfo()),
                                          dateUTC = (uint) Util.ToUnixTime(date),
                                          amount = cover,
                                          cover = cover,
                                          maturity = (int) maturity,
                                          eventFlags = flags | (uint) maturity,
                                          duration = duration,
                                          globalPos = new Vector3(
                                              region.RegionLocX + localPos.X,
                                              region.RegionLocY + localPos.Y,
                                              region.RegionLocZ + localPos.Z
                                              ),
                                          name = name,
                                          description = description,
                                          category = category
                                      };

            Dictionary<string, object> row = new Dictionary<string, object>(15);
            row["EID"] = eventData.eventID;
            row["creator"] = creator.ToString();
            row["region"] = regionID.ToString();
            row["parcel"] = parcelID.ToString();
            row["date"] = date.ToString("s");
            row["cover"] = eventData.cover;
            row["maturity"] = (uint)maturity;
            row["flags"] = flags;
            row["duration"] = duration;
            row["localPosX"] = localPos.X;
            row["localPosY"] = localPos.Y;
            row["localPosZ"] = localPos.Z;
            row["name"] = name;
            row["description"] = description;
            row["category"] = category;

            GD.Insert("asevents", row);

            return eventData;
        }
        public EventData CreateEvent(UUID creator, UUID regionID, UUID parcelID, DateTime date, uint cover, EventFlags maturity, uint flags, uint duration, Vector3 localPos, string name, string description, string category)
        {
            IRegionData regiondata = Aurora.DataManager.DataManager.RequestPlugin<IRegionData>();
            IParcelServiceConnector parceldata = Aurora.DataManager.DataManager.RequestPlugin<IParcelServiceConnector>();
            if(regiondata == null || parceldata == null){
                return null;
            }

            GridRegion region = regiondata.Get(regionID, UUID.Zero);
            if(region == null){
                return null;
            }
            if (parcelID != UUID.Zero)
            {
                LandData parcel = parceldata.GetLandData(region.RegionID, parcelID);
                if (parcel == null)
                {
                    return null;
                }
            }


            EventData eventData = new EventData();
            eventData.eventID = GetMaxEventID() + 1;
            eventData.creator = creator.ToString();
            eventData.simName = region.RegionName;
            eventData.date = date.ToString(new DateTimeFormatInfo());
            eventData.dateUTC = (uint)Util.ToUnixTime(date);
            eventData.cover = eventData.amount = cover;
            eventData.maturity = (int)maturity;
            eventData.eventFlags = flags | (uint)maturity;
            eventData.duration = duration;
            eventData.globalPos = new Vector3(
                region.RegionLocX + localPos.X,
                region.RegionLocY + localPos.Y,
                region.RegionLocZ + localPos.Z
            );
            eventData.name = name;
            eventData.description = description;
            eventData.category = category;

            GD.Insert("asevents", new string[]{
                "EID",
                "creator",
                "region",
                "parcel", 
                "date", 
                "cover", 
                "maturity", 
                "flags", 
                "duration", 
                "localPosX", 
                "localPosY", 
                "localPosZ", 
                "name",
                "description",
                "category"
            }, new object[]{
                eventData.eventID,
                creator.ToString(),
                regionID.ToString(),
                parcelID.ToString(),
                date.ToString("s"),
                eventData.cover,
                (uint)maturity,
                flags,
                duration,
                localPos.X,
                localPos.Y,
                localPos.Z,
                name,
                description,
                category
            });

            return eventData;
        }
        public EventData CreateEvent(UUID creator, UUID regionID, UUID parcelID, DateTime date, uint cover,
                                     EventFlags maturity, uint flags, uint duration, Vector3 localPos, string name,
                                     string description, string category)
        {
            object remoteValue = DoRemote(creator, regionID, parcelID, date, cover, maturity, flags, duration, localPos,
                                          name, description, category);
            if (remoteValue != null || m_doRemoteOnly)
                return (EventData) remoteValue;

            IRegionData regiondata = Framework.Utilities.DataManager.RequestPlugin<IRegionData>();
            if (regiondata == null)
            {
                return null;
            }

            GridRegion region = regiondata.Get(regionID, null);
            if (region == null)
            {
                return null;
            }

            EventData eventData = new EventData ();
            eventData.eventID = GetMaxEventID () + 1;
            eventData.creator = creator.ToString();
            eventData.simName = region.RegionName;
            eventData.date = date.ToString(new DateTimeFormatInfo());
            eventData.dateUTC = (uint) Util.ToUnixTime(date);
            eventData.amount = cover;
            eventData.cover = cover;
            eventData.maturity = (int) maturity;
            eventData.eventFlags = flags | (uint) maturity;
            eventData.duration = duration;
            eventData.globalPos = new Vector3(
                region.RegionLocX + localPos.X,
                region.RegionLocY + localPos.Y,
                region.RegionLocZ + localPos.Z);
            eventData.regionPos = localPos;
            eventData.name = name;
            eventData.description = description;
            eventData.category = category;

            Dictionary<string, object> row = new Dictionary<string, object>(15);
            row["EID"] = eventData.eventID;
            row["creator"] = creator.ToString();
            row["region"] = regionID.ToString();
            row["parcel"] = parcelID.ToString();
            row["date"] = date.ToString("s");
            row["cover"] = eventData.cover;
            row["maturity"] = (uint) maturity;
            row["flags"] = flags;
            row["duration"] = duration;
            row["localPosX"] = localPos.X;
            row["localPosY"] = localPos.Y;
            row["localPosZ"] = localPos.Z;
            row["name"] = name;
            row["description"] = description;
            row["category"] = category;

            GD.Insert(m_eventInfoTable, row);

            return eventData;
        }
        public EventData CreateEvent(UUID creator, UUID regionID, UUID parcelID, DateTime date, uint cover, EventFlags maturity, uint flags, uint duration, Vector3 localPos, string name, string description, string category)
        {
            Dictionary<string, object> sendData = new Dictionary<string, object>();
            sendData["METHOD"] = "CreateEvent";
            sendData["Creator"] = creator;
            sendData["RegionID"] = regionID;
            sendData["ParcelID"] = parcelID;
            sendData["Date"] = date;
            sendData["Cover"] = cover;
            sendData["Maturity"] = maturity;
            sendData["Flags"] = flags;
            sendData["Duration"] = duration;
            sendData["LocalPos"] = localPos;
            sendData["Name"] = name;
            sendData["Description"] = description;
            sendData["Category"] = category;


            string reqString = WebUtils.BuildQueryString(sendData);
            try
            {
                List<string> m_ServerURIs =
                    m_registry.RequestModuleInterface<IConfigurationService>().FindValueOf("RemoteServerURI");
                foreach (EventData eventdata in from m_ServerURI in m_ServerURIs
                                                select SynchronousRestFormsRequester.MakeRequest("POST",
                                                                                                 m_ServerURI,
                                                                                                 reqString) into reply
                                                where reply != string.Empty
                                                select WebUtils.ParseXmlResponse(reply) into replyData
                                                from object f in replyData
                                                select (KeyValuePair<string, object>)f into value
                                                where value.Value is Dictionary<string, object>
                                                select value.Value as Dictionary<string, object> into valuevalue
                                                select new EventData(valuevalue))
                {
                    return eventdata;
                }
            }
            catch (Exception e)
            {
                MainConsole.Instance.DebugFormat("[AuroraRemoteDirectoryServiceConnector]: Exception when contacting server: {0}", e);
            }
            return null;
        }