Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }