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 { 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 ), regionPos = localPos, 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; }
private static List<EventData> Query2EventData(List<string> RetVal) { List<EventData> Events = new List<EventData>(); IRegionData regiondata = Framework.Utilities.DataManager.RequestPlugin<IRegionData>(); if (RetVal.Count%16 != 0 || regiondata == null) { return Events; } for (int i = 0; i < RetVal.Count; i += 16) { EventData data = new EventData(); GridRegion region = regiondata.Get(UUID.Parse(RetVal[2]), null); if (region == null) { continue; } data.simName = region.RegionName; data.eventID = Convert.ToUInt32(RetVal[i]); data.creator = RetVal[i + 1]; //Parse the time out for the viewer DateTime date = DateTime.Parse(RetVal[i + 4]); data.date = date.ToString(new DateTimeFormatInfo()); data.dateUTC = (uint) Util.ToUnixTime(date); data.cover = data.amount = Convert.ToUInt32(RetVal[i + 5]); data.maturity = Convert.ToInt32(RetVal[i + 6]); data.eventFlags = Convert.ToUInt32(RetVal[i + 7]); data.duration = Convert.ToUInt32(RetVal[i + 8]); data.regionPos = new Vector3( float.Parse(RetVal[i + 9]), float.Parse(RetVal[i + 10]), float.Parse(RetVal[i + 11]) ); data.globalPos = new Vector3( region.RegionLocX + data.regionPos.X, region.RegionLocY + data.regionPos.Y, region.RegionLocZ + data.regionPos.Z ); data.name = RetVal[i + 12]; data.description = RetVal[i + 13]; data.category = RetVal[i + 14]; Events.Add(data); } return Events; }
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) { if (m_doRemoteOnly) { object remoteValue = DoRemote (creator, regionID, parcelID, date, cover, maturity, flags, duration, localPos, name, description, category); return remoteValue != null ? (EventData)remoteValue : null; } IRegionData regiondata = Framework.Utilities.DataManager.RequestPlugin<IRegionData>(); if (regiondata == null) return null; GridRegion region = regiondata.Get(regionID, null); if (region == null) return null; // create the event 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; eventData.regionId = regionID.ToString(); eventData.parcelId = parcelID.ToString(); 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"] = Util.ConvertEventMaturityToDBMaturity (maturity); // PG = 1, M == 2, A == 4 row["flags"] = flags; // region maturity 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 bool UpdateAddEvent (EventData eventData) { if (m_doRemoteOnly) { object remoteValue = DoRemote (eventData); return (bool)remoteValue; } // delete this event it it exists QueryFilter filter = new QueryFilter (); filter.andFilters ["EID"] = eventData.eventID; GD.Delete (m_eventInfoTable, filter); // add the event Dictionary<string, object> row = new Dictionary<string, object> (15); row ["EID"] = GetMaxEventID () + 1; row ["creator"] = eventData.creator; row ["region"] = eventData.regionId; row ["parcel"] = eventData.parcelId; row ["date"] = eventData.date; row ["cover"] = eventData.cover; row ["maturity"] = Util.ConvertEventMaturityToDBMaturity ((EventFlags) eventData.maturity); // PG = 1, M == 2, A == 4 row ["flags"] = eventData.eventFlags; // region maturity flags row ["duration"] = eventData.duration; row ["localPosX"] = eventData.regionPos.X; row ["localPosY"] = eventData.regionPos.Y; row ["localPosZ"] = eventData.regionPos.Z; row ["name"] = eventData.name; row ["description"] = eventData.description; row ["category"] = eventData.category; try { GD.Insert (m_eventInfoTable, row); } catch { return false; } // assume success if no error return true; }
public Dictionary<string, object> Fill (WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary<string, object> requestParameters, ITranslator translator, out string response) { UserAccount ourAccount = Authenticator.GetAuthentication (httpRequest); IMoneyModule moneyModule = webInterface.Registry.RequestModuleInterface<IMoneyModule> (); var currencySymbol = "$"; if (moneyModule != null) currencySymbol = moneyModule.InWorldCurrencySymbol; var directoryService = Framework.Utilities.DataManager.RequestPlugin<IDirectoryServiceConnector> (); response = null; var eventData = new EventData (); var vars = new Dictionary<string, object> (); string eventId; uint eid = 0; if (httpRequest.Query.ContainsKey ("eventid")) { eventId = httpRequest.Query ["eventid"].ToString (); } else { if (requestParameters.ContainsKey ("eventid")) { eventId = requestParameters ["eventid"].ToString (); } else { response = "<h3>Event details not supplied, redirecting to main page</h3>" + "<script>" + "setTimeout(function() {window.location.href = \"index.html\";}, 1000);" + "</script>"; return null; } } uint.TryParse (eventId, out eid); if (requestParameters.ContainsKey ("Delete")) { //string newsID = httpRequest.Query ["delete"].ToString (); if (directoryService.DeleteEvent (eid.ToString ())) response = "<h3>Event details have been deleted</h3>" + "<script>" + "setTimeout(function() {window.location.href = \"/?page=user_events\";}, 1000);" + "</script>"; else response = "<h3>Error encountered when deleting event. Please try again later</h3>"; return null; } if (requestParameters.ContainsKey ("Submit")) { string eventName = requestParameters ["eventName"].ToString (); string eventDate = requestParameters ["eventDate"].ToString (); string eventTime = requestParameters ["eventTime"].ToString (); string eventDuration = requestParameters ["eventDuration"].ToString (); string eventLocation = requestParameters ["eventLocation"].ToString (); string eventCategory = requestParameters ["eventCategory"].ToString (); string eventCoverCharge = requestParameters ["eventCoverCharge"].ToString (); string eventDescription = requestParameters ["eventDescription"].ToString (); var regionData = Framework.Utilities.DataManager.RequestPlugin<IRegionData> (); var selParcel = eventLocation.Split (','); // Format: parcelLocationX, parcelLocationY, parcelLandingX, parcelLandingY, parcelLandingZ, parcelUUID // "1020,995,128,28,25,d436261b-7186-42a6-dcd3-b80c1bcafaa4" Framework.Services.GridRegion region = null; var parcel = directoryService.GetParcelInfo ((UUID)selParcel [5]); if (parcel != null) region = regionData.Get (parcel.RegionID, null); if (region == null) { var error = "Parcel details not found!"; vars.Add ("ErrorMessage", "<h3>" + error + "</h3>"); response = "<h3>" + error + "</h3>"; return null; } // we have details... var eventDT = DateTime.Parse (eventDate + " " + eventTime); var localPos = new Vector3 (int.Parse (selParcel [0]), int.Parse (selParcel [0]), 0); eventData.eventID = eid; // used to delete the existing event details eventData.creator = ourAccount.PrincipalID.ToString (); eventData.regionId = region.RegionID.ToString (); eventData.parcelId = selParcel [5]; eventData.date = eventDT.ToString ("s"); eventData.cover = uint.Parse (eventCoverCharge); eventData.maturity = (int)Util.ConvertAccessLevelToMaturity (region.Access); eventData.eventFlags = region.Access; // region maturity flags eventData.duration = uint.Parse (eventDuration); eventData.regionPos = localPos; eventData.name = eventName; eventData.description = eventDescription; eventData.category = eventCategory; var success = directoryService.UpdateAddEvent (eventData); if (success) response = "<h3>Event updated successfully</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=user_events\";}, 1000);" + "</script>"; return null; } eventData = directoryService.GetEventInfo (eid); if (eventData == null) { response = "<h3>Event details are not available</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=user_events\";}, 1000);" + "</script>"; return null; } // details vars.Add ("EventID", eventData.eventID); //vars.Add ("CreatorUUID", eventData.creator); vars.Add ("Name", eventData.name); vars.Add ("Description", eventData.description.Trim ()); vars.Add ("SimName", eventData.simName); // Time selections var evntDateTime = Util.ToDateTime (eventData.dateUTC).ToLocalTime (); vars.Add ("EventDate", evntDateTime.ToShortDateString ()); vars.Add ("EventTimes", WebHelpers.EventTimeSelections (evntDateTime.ToString ("HH\\:mm\\:ss"))); // event durations vars.Add ("EventDurations", WebHelpers.EventDurationSelections ((int)eventData.duration)); // event locations vars.Add ("EventLocations", WebHelpers.EventLocations (ourAccount, webInterface.Registry, eventData.parcelId)); vars.Add ("EventCategories", WebHelpers.EventCategorySelections (int.Parse (eventData.category), translator)); vars.Add ("EventCoverCharge", eventData.cover.ToString ()); // labels vars.Add ("AddEventText", translator.GetTranslatedString ("AddEventText")); vars.Add ("EventNameText", translator.GetTranslatedString ("EventNameText")); vars.Add ("EventDateText", translator.GetTranslatedString ("EventDateText")); vars.Add ("EventTimeText", translator.GetTranslatedString ("TimeText")); vars.Add ("EventTimeInfoText", translator.GetTranslatedString ("EventTimeInfoText")); vars.Add ("EventDurationText", translator.GetTranslatedString ("DurationText")); vars.Add ("EventLocationText", translator.GetTranslatedString ("EventLocationText")); vars.Add ("EventCategoryText", translator.GetTranslatedString ("CategoryText")); vars.Add ("EventCoverChargeText", translator.GetTranslatedString ("CoverChargeText") + " " + currencySymbol); vars.Add ("EventDescriptionText", translator.GetTranslatedString ("DescriptionText")); vars.Add ("ErrorMessage", ""); vars.Add ("Delete", translator.GetTranslatedString ("DeleteText")); vars.Add ("Submit", translator.GetTranslatedString ("SaveUpdates")); return vars; }