public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; IConfig gridInfo = webInterface.Registry.RequestModuleInterface <ISimulationBase>().ConfigSource.Configs ["GridInfoService"]; var InWorldCurrency = gridInfo.GetString("CurrencySymbol", String.Empty) + " "; var RealCurrency = gridInfo.GetString("RealCurrencySymbol", String.Empty) + " "; var vars = new Dictionary <string, object>(); var purchasesList = new List <Dictionary <string, object> >(); uint amountPerQuery = 25; var today = DateTime.Now; var thirtyDays = today.AddDays(-7); string DateStart = thirtyDays.ToShortDateString(); string DateEnd = today.ToShortDateString(); UUID UserID = UUID.Zero; int start = 0; IMoneyModule moneyModule = webInterface.Registry.RequestModuleInterface <IMoneyModule>(); string noDetails = translator.GetTranslatedString("NoPurchasesText"); // Check if we're looking at the standard page or the submitted one if (requestParameters.ContainsKey("Submit")) { if (requestParameters.ContainsKey("date_start")) { DateStart = requestParameters ["date_start"].ToString(); } if (requestParameters.ContainsKey("date_end")) { DateEnd = requestParameters ["date_end"].ToString(); } // pagination start = httpRequest.Query.ContainsKey("Start") ? int.Parse(httpRequest.Query ["Start"].ToString()) : 0; int count = (int)moneyModule.NumberOfPurchases(UserID); int maxPages = (int)(count / amountPerQuery) - 1; if (start == -1) { start = (int)(maxPages < 0 ? 0 : maxPages); } vars.Add("CurrentPage", start); vars.Add("NextOne", start + 1 > maxPages ? start : start + 1); vars.Add("BackOne", start - 1 < 0 ? 0 : start - 1); } else { vars.Add("CurrentPage", 0); vars.Add("NextOne", 0); vars.Add("BackOne", 0); } UserAccount user = Authenticator.GetAuthentication(httpRequest); // Purchases Logs var timeNow = DateTime.Now.ToString("HH:mm:ss"); var dateFrom = DateTime.Parse(DateStart + " " + timeNow); var dateTo = DateTime.Parse(DateEnd + " " + timeNow); TimeSpan period = dateTo.Subtract(dateFrom); List <AgentPurchase> purchases; purchases = moneyModule.GetPurchaseHistory(user.PrincipalID, dateFrom, dateTo, (uint)start, amountPerQuery); // data if (purchases.Count > 0) { noDetails = ""; foreach (var purchase in purchases) { purchasesList.Add(new Dictionary <string, object> { { "ID", purchase.ID }, { "AgentID", purchase.AgentID }, { "AgentName", user.Name }, { "LoggedIP", purchase.IP }, { "Description", "Purchase" }, { "Amount", purchase.Amount }, { "RealAmount", ((float)purchase.RealAmount / 100).ToString("0.00") }, { "PurchaseDate", Culture.LocaleDate(purchase.PurchaseDate.ToLocalTime(), "MMM dd, hh:mm:ss tt") }, { "UpdateDate", Culture.LocaleDate(purchase.UpdateDate.ToLocalTime(), "MMM dd, hh:mm:ss tt") } }); } } if (purchasesList.Count == 0) { purchasesList.Add(new Dictionary <string, object> { { "ID", "" }, { "AgentID", "" }, { "AgentName", "" }, { "LoggedIP", "" }, { "Description", translator.GetTranslatedString("NoPurchasesText") }, { "Amount", "" }, { "RealAmount", "" }, { "PurchaseDate", "" }, { "UpdateDate", "" }, }); } // always required data vars.Add("DateStart", DateStart); vars.Add("DateEnd", DateEnd); vars.Add("Period", period.TotalDays + " " + translator.GetTranslatedString("DaysText")); vars.Add("PurchasesList", purchasesList); vars.Add("NoPurchasesText", noDetails); // labels vars.Add("PurchasesText", translator.GetTranslatedString("PurchasesText")); vars.Add("DateInfoText", translator.GetTranslatedString("DateInfoText")); vars.Add("DateStartText", translator.GetTranslatedString("DateStartText")); vars.Add("DateEndText", translator.GetTranslatedString("DateEndText")); vars.Add("SearchUserText", translator.GetTranslatedString("AvatarNameText")); vars.Add("PurchaseAgentText", translator.GetTranslatedString("TransactionToAgentText")); vars.Add("PurchaseDateText", translator.GetTranslatedString("TransactionDateText")); vars.Add("PurchaseUpdateDateText", translator.GetTranslatedString("TransactionDateText")); //vars.Add("PurchaseTimeText", translator.GetTranslatedString("Time")); vars.Add("PurchaseDetailText", translator.GetTranslatedString("TransactionDetailText")); vars.Add("LoggedIPText", translator.GetTranslatedString("LoggedIPText")); vars.Add("PurchaseAmountText", InWorldCurrency + translator.GetTranslatedString("TransactionAmountText")); vars.Add("PurchaseRealAmountText", RealCurrency + translator.GetTranslatedString("PurchaseCostText")); vars.Add("FirstText", translator.GetTranslatedString("FirstText")); vars.Add("BackText", translator.GetTranslatedString("BackText")); vars.Add("NextText", translator.GetTranslatedString("NextText")); vars.Add("LastText", translator.GetTranslatedString("LastText")); vars.Add("CurrentPageText", translator.GetTranslatedString("CurrentPageText")); return(vars); }
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; } response = null; var vars = new Dictionary <string, object> (); var duration = 10; 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 directoryService = Framework.Utilities.DataManager.RequestPlugin <IDirectoryServiceConnector> (); 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); var nEvent = directoryService.CreateEvent( ourAccount.PrincipalID, region.RegionID, (UUID)selParcel [5], eventDT, uint.Parse(eventCoverCharge), (DirectoryManager.EventFlags)Util.ConvertAccessLevelToMaturity(region.Access), region.Access, uint.Parse(eventDuration), localPos, eventName, eventDescription, eventCategory ); if (nEvent != null) { response = "<h3>Event added successfully, redirecting to main page</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=events\";}, 0);" + "</script>"; } return(null); } // Time selections var nearestHalf = Utilities.RoundUp(DateTime.Now, TimeSpan.FromMinutes(30)).ToString("HH\\:mm\\:ss"); vars.Add("EventDate", DateTime.Now.AddDays(1).ToShortDateString()); vars.Add("EventTimes", WebHelpers.EventTimeSelections(nearestHalf)); // event durations vars.Add("EventDurations", WebHelpers.EventDurationSelections(duration)); // event locations vars.Add("EventLocations", WebHelpers.EventLocations(ourAccount, webInterface.Registry, "")); vars.Add("EventCategories", WebHelpers.EventCategorySelections(-1, translator)); vars.Add("EventCoverCharge", "0"); // 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("Submit", translator.GetTranslatedString("AddEventText")); return(vars); }
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); }