public override void addLinksToMessageFromList(
            UserSession us,
            List<MenuOptionItem> list,
            MessageToSend ms)
        {
            ms.AppendLine();
            int count = (us.current_menu_page * MenuDefinition.PAGE_ITEM_COUNT) + 1;

            int starting_index = us.current_menu_page * MenuDefinition.PAGE_ITEM_COUNT;
            FriendRelationMenuOptionItem an_option;
            FriendRelation fr;

            List<long> recipient_list = null;
            if (us.hasVariable(ChooseFriendHandler.RECIPIENT_LIST))
            {
                recipient_list = (List<long>)us.getVariableObject(ChooseFriendHandler.RECIPIENT_LIST);
            }
            for (int i = starting_index;
                i < list.Count && i < starting_index + MenuDefinition.PAGE_ITEM_COUNT;
                i++)
            {
                an_option = (FriendRelationMenuOptionItem)list.ElementAt(i);
                fr = an_option.fr;
                if (recipient_list == null || (recipient_list != null && !recipient_list.Contains(long.Parse(an_option.display_text))))
                {

                    ms.Append(" " + UserNameManager.getInstance().getUserName(long.Parse(an_option.display_text)) + " ");
                    ms.Append(createMessageLink(MENU_LINK_NAME, "[+]", "ADD_" + an_option.display_text));
                    /*ms.Append(" ");
                    ms.Append(createMessageLink(MENU_LINK_NAME, "[-]", "REMOVE_" + an_option.display_text));*/
                    ms.Append("\r\n");
                }
                count++;
            }
        }
        public override void addLinksToMessageFromList(
            UserSession us,
            List<MenuOptionItem> list,
            MessageToSend ms)
        {
            int count = (us.current_menu_page * MenuDefinition.PAGE_ITEM_COUNT) + 1;

            int starting_index = us.current_menu_page * MenuDefinition.PAGE_ITEM_COUNT;
            VerseMenuOptionItem an_option;
            String summary = "";
            for (int i = starting_index;
                i < list.Count && i < starting_index + MenuDefinition.PAGE_ITEM_COUNT;
                i++)
            {
                an_option = (VerseMenuOptionItem)list.ElementAt(i);
                ms.Append(createMessageLink(MENU_LINK_NAME, count + ") ", an_option.link_val));
                ms.Append(an_option.display_text);
                String start_verse = an_option.fvr.start_verse;
                Verse verse_summ = Verse_Handler.getStartingVerse(us.user_profile.getDefaultTranslationId(), an_option.fvr.start_verse);
                //NetBible method should not be used because this is not always a NET Bible
                if (an_option.is_valid && verse_summ != null)
                {
                    summary = BibleContainer.getSummaryOfVerse(verse_summ, SUMMARY_WORD_COUNT);
                    ms.Append(" - " + summary + "...");
                }
                else
                {
                    ms.Append(" - The verse is not available in this translation", TextMarkup.Bold);
                }
                //ms.Append(createMessageLink(MENU_LINK_NAME, "[x]", "del:"+ count));
                ms.Append("\r\n");
                count++;
            }
        }
 public void appendExtraCommandLinks(String extra_commands, MessageToSend ms)
 {
     if (!(extra_commands == ""))
     {
         //TODO Complete this to split on | and add different commands
         ms.Append(createMessageLink(MENU_LINK_NAME, extra_commands, extra_commands.ToUpper()));
         ms.Append("\r\n");
     }
 }
        //in here we should rather call a this method and from here call the implemented output screen
        //message method so that we can do common things in here. anyway too late now.
        public override MessageToSend getOutputScreenMessage(
            UserSession us,
            MenuPage mp,
            MessageToSend ms,
            InputHandlerResult ihr)
        {
            ms.Append(MessageBuilder.Elements.CreateClearScreen());
            if (!mp.GetType().FullName.Equals("MxitTestApp.DynMenuPage"))//TODO: Should be constant
                throw new Exception("Invalid menu page passed into getScreen method ");

            DynMenuPage dmp = (DynMenuPage)mp;
            ms.Append(dmp.title + "\r\n",TextMarkup.Bold);
            if (ihr.action == InputHandlerResult.CONF_PAGE_ACTION
                 && ihr.message != null)
            {
                ms.Append(ihr.message + "\r\n");
                ms.Append(createMessageLink(MENU_LINK_NAME, "Y", "Yes"));
                ms.Append(" | ");
                ms.Append(createMessageLink(MENU_LINK_NAME, "N", "No"));
            }
            else
            {
                if (ihr.action == InputHandlerResult.INVALID_MENU_ACTION
                && ihr.error != null)
                {
                    ms.Append((string)ihr.error + "\r\n");
                }
                else
                {
                    ms.Append(parseMessage(us, dmp.message) + "\r\n");
                }
                /*List<MenuOptionItem> options = dmp.options;
                int count =1 ;
                foreach (MenuOptionItem option in options)
                {
                    ms.Append(createMessageLink(MENU_LINK_NAME, count + ") ", option.link_val));
                    ms.Append(option.display_text + "\r\n");
                    count++;
                }*/
                List<MenuOptionItem> dyn_options = dmp.dynamic_set.getOptionList(us);
                if (dyn_options.Count() == 0)
                {
                    String empty_msg = dmp.dynamic_set.getListEmptyMessage();
                    if (empty_msg != null && empty_msg != "")
                        ms.Append(dmp.dynamic_set.getListEmptyMessage() + "\r\n");
                }
                addLinksToMessageFromList(us, dyn_options, ms);

                appendPaginateLinks(us, ms, dyn_options.Count);
                appendExtraCommandLinks(dmp.dynamic_set.getExtraCommandString(), ms);
                appendBackMainLinks(us, ms);
                appendMessageConfig(true,  ms);
            }
            return ms;
            //return output;
        }
        public void addThreadLinks(
            UserSession us,
            MessageToSend ms)
        {
            int current_page = Int32.Parse(us.getVariable(MessageInboxHandler.CURRENT_MESSAGE_THREAD));
            int count = (current_page * THREAD_COUNT_PER_PAGE) + 1;
            VerseMessageThread vmt;
            int starting_index = current_page * THREAD_COUNT_PER_PAGE;
            List<VerseMessageThread> threads = us.verse_messaging_manager.getParticipatingThreads();
            if (threads.Count() == 0)
            {
                ms.Append("Your inbox is empty");
                return;
            }

            for (int i = starting_index;
                i < threads.Count && i < starting_index + THREAD_COUNT_PER_PAGE;
                i++)
            {
                vmt = threads.ElementAt(i);
                if (vmt == null)
                    continue;
                appendMessageThread(us, ms, vmt);
            }
            appendPaginateLinks(us,  ms, threads.Count, THREAD_COUNT_PER_PAGE);
        }
        public override void addLinksToMessageFromList(
            UserSession us,
            List<MenuOptionItem> list,
            MessageToSend ms)
        {
            int count = (us.current_menu_page * MenuDefinition.PAGE_ITEM_COUNT) + 1;

            int starting_index = us.current_menu_page * MenuDefinition.PAGE_ITEM_COUNT;
            FriendRelationMenuOptionItem an_option;
            FriendRelation fr;
            for (int i = starting_index;
                i < list.Count && i < starting_index + MenuDefinition.PAGE_ITEM_COUNT;
                i++)
            {
                an_option = (FriendRelationMenuOptionItem)list.ElementAt(i);
                fr = an_option.fr;
                ms.Append("* " + UserNameManager.getInstance().getUserName(long.Parse(an_option.display_text)));
                ms.Append(" ");
                ms.Append(createMessageLink(MENU_LINK_NAME, "[REMOVE]", "DELETE_" + an_option.display_text));
                ms.Append(" ");
                ms.Append(createMessageLink(MENU_LINK_NAME, "[BLOCK]", "BLOCK_" + an_option.display_text));
                ms.Append(" ");
                ms.Append("\r\n");
                count++;
            }
        }
示例#7
0
        public virtual void addLinksToMessageFromList(
            UserSession us,
            List<MenuOptionItem> list,
            MessageToSend ms)
        {
            int count = (us.current_menu_page * MenuDefinition.PAGE_ITEM_COUNT) + 1;

            int starting_index = us.current_menu_page * MenuDefinition.PAGE_ITEM_COUNT;
            MenuOptionItem an_option;
            for (int i = starting_index;
                i < list.Count && i < starting_index + MenuDefinition.PAGE_ITEM_COUNT;
                i++)
            {
                an_option = list.ElementAt(i);
                ms.Append(createMessageLink(MENU_LINK_NAME, count + ") ", an_option.link_val));
                ms.Append(an_option.display_text + "\r\n");
                count++;
            }
        }
        public override MessageToSend getOutputScreenMessage(
            UserSession us,
            MenuPage mp,
            MessageToSend ms,
            InputHandlerResult ihr)
        {
            ms.Append(MessageBuilder.Elements.CreateClearScreen());
            if (!mp.GetType().FullName.Equals("MxitTestApp.OptionMenuPage"))//TODO: Should be constant
                throw new Exception("Invalid menu page passed into getScreen method ");

            OptionMenuPage omp = (OptionMenuPage)mp;
            ms.Append(omp.title + "\r\n", TextMarkup.Bold);
            if (ihr.action == InputHandlerResult.INVALID_MENU_ACTION
                && ihr.error != null)
            {
                ms.Append((string)ihr.error + "\r\n");
            }
            else
            {
                ms.Append(parseMessage(us, omp.message) + "\r\n");
            }
            List<MenuOptionItem> options = omp.options;
            int count =1 ;
            foreach (MenuOptionItem option in options)
            {
                ms.Append(createMessageLink(MENU_LINK_NAME, count + ") ", option.link_val));
                ms.Append(option.display_text + "\r\n");
                count++;
            }
            appendBackMainLinks(us,  ms);
            appendMessageConfig(true, ms);
            return ms;
            //return output;
        }
        public void addQuickFilterLinksToMessageFromList(
            UserSession us,
            MessageToSend ms)
        {
            List<char> starting_chars = us.friend_manager.getStartingCharacters();
            //.. starting_chars
            starting_chars.Sort();
            if (starting_chars.Count() > 1)
            {
                int i = 0;

                foreach (var a_char in starting_chars)
                {
                    if (i == 0)
                    {
                        i++;
                        ms.Append("\r\nFilter - ");
                        ms.Append(createMessageLink(MENU_LINK_NAME, "[ALL]", FriendHandler.FILTER_LIST + "ALL"));
                        ms.Append(" ");
                    }
                    ms.Append(createMessageLink(MENU_LINK_NAME, "[" + a_char.ToString().ToUpper() + "]", FriendHandler.FILTER_LIST + a_char));
                    ms.Append(" ");
                }
                ms.Append("\r\n\r\n");
            }
        }
        public void addQuickFilterLinksToMessageFromList(
            UserSession us,
            MessageToSend ms)
        {
            List<char> starting_chars = us.friend_manager.getStartingCharacters();
            //.. starting_chars
            starting_chars.Sort();
            String filter = "";
            if (us.hasVariable(ChooseFriendHandler.FRIEND_LIST_FILTER))
            {
                filter = us.getVariable(ChooseFriendHandler.FRIEND_LIST_FILTER);

            }
            if (starting_chars.Count() > 1)
            {
                int i = 0;

                foreach (var a_char in starting_chars)
                {
                    if (i == 0)
                    {
                        i++;
                        ms.Append("\r\nFilter - ");
                        if (filter.Equals("") || filter.Equals("ALL"))
                        {
                            ms.Append("[ALL]");
                        }
                        else
                        {
                            ms.Append(createMessageLink(MENU_LINK_NAME, "[ALL]", FriendHandler.FILTER_LIST + "ALL"));
                        }
                        ms.Append(" ");
                    }
                    if (filter.Equals(a_char.ToString().ToUpper()))
                    {
                        ms.Append("[" + a_char.ToString().ToUpper() + "]");
                    }
                    else
                    {
                        ms.Append(createMessageLink(MENU_LINK_NAME, "[" + a_char.ToString().ToUpper() + "]", FriendHandler.FILTER_LIST + a_char));
                    }
                    ms.Append(" ");
                }
                ms.Append("\r\n\r\n");
            }
        }
示例#11
0
        public static void appendInitialMessageConfig(UserProfile up, MessageToSend message)
        {
            IMessageElement chatScreenConfig;
            IClientColors clientColors = MessageBuilder.Elements.CreateClientColors(); //Create the colour scheme you want to
            UserColourTheme uct = UserColourTheme.getColourTheme(up.user_profile_custom.colour_theme);
            if (uct != null)
            {
                clientColors[ClientColorType.Background] = uct.getBackGroundColour();
                clientColors[ClientColorType.Text] = uct.getForeGroundColour();
                clientColors[ClientColorType.Link] = uct.getLinkColour();
                chatScreenConfig = MessageBuilder.Elements.CreateChatScreenConfig(
                    ChatScreenBehaviourType.ShowProgress |
                    ChatScreenBehaviourType.NoPrefix,
                    clientColors);
            }
            else
            {

                //clientColors[ClientColorType.Background] = Color.Empty; //System.Drawing.ColorTranslator.FromHtml("#??????");
                //clientColors[ClientColorType.Text] = Color.Empty; //System.Drawing.ColorTranslator.FromHtml("#??????");
                //clientColors[ClientColorType.Link] = Color.Empty; //System.Drawing.ColorTranslator.FromHtml("#??????");
                chatScreenConfig = MessageBuilder.Elements.CreateChatScreenConfig(
                    ChatScreenBehaviourType.ShowProgress |
                    ChatScreenBehaviourType.NoPrefix);

            }

            message.Append(chatScreenConfig);
            /*else
            {
                chatScreenConfig = MessageBuilder.Elements.CreateChatScreenConfig(
                    ChatScreenBehaviourType.ShowProgress |
                    ChatScreenBehaviourType.NoPrefix);
            }
            ms.Append(chatScreenConfig);*/
        }
        public bool appendShinkaBannerAd(ref MessageToSend messageToSend, MXit.User.UserInfo userInfo)
        {
            bool gotShinkaAd = false;

            try
            {
                if (AdvertConfig.isShowShinkaBannerAd)
                {
                    String MxitUserID = userInfo.UserId;
                    MXit.User.GenderType userGenderType = userInfo.Gender;
                    int displayWidth = userInfo.DeviceInfo.DisplayWidth;
                    int displayHeight = userInfo.DeviceInfo.DisplayHeight;
                    int userAge = AgeInYears(userInfo.DateOfBirth);

                    BannerAd adTodisplay;
                    gotShinkaAd = AdvertHelper.Instance.getBannerAd(MxitUserID, userGenderType, displayWidth, displayHeight, userAge, out adTodisplay);

                    if (gotShinkaAd)
                    {
                        if (adTodisplay.creativeType == "image")
                        {
                            int imageDisplayWidthPerc;

                            if (displayWidth <= 128)
                            {
                                imageDisplayWidthPerc = 99;
                            }
                            else
                            {
                                imageDisplayWidthPerc = 100;
                            }

                            IMessageElement inlineImage = MessageBuilder.Elements.CreateInlineImage(adTodisplay.adImage, ImageAlignment.Center, TextFlow.AloneOnLine, imageDisplayWidthPerc);
                            messageToSend.Append(inlineImage);
                        }

                        messageToSend.Append("Go to ", CSS.Ins.clr["light"], CSS.Ins.mrk["d"]);
                        String displayText = System.Net.WebUtility.HtmlDecode(adTodisplay.altText);
                        messageToSend.AppendLine(MessageBuilder.Elements.CreateBrowserLink(displayText, adTodisplay.clickURL));
                        messageToSend.AppendLine();

                        //register impression for the bannerad display
                        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adTodisplay.impressionURL);

                        req.UserAgent = "Mozilla Compatible mxit_client";

                        Random random = new Random(DateTime.Now.Second);
                        int randomUpTo254 = random.Next(1, 254);
                        String tempIP = "196.11.239." + randomUpTo254;
                        req.Headers.Add("X-Forwarded-For", tempIP);

                        req.Referer = AdvertConfig.appID;

                        req.Timeout = AdvertConfig.bannerAdTimeout;
                        req.Proxy = null;
                        req.KeepAlive = false;
                        req.ServicePoint.ConnectionLeaseTimeout = 10000;
                        req.ServicePoint.MaxIdleTime = 10000;

                        QueueHelper_HTTP.Instance.QueueItem(req);
                    }
                }
                //zama end
            }
            catch (Exception ex)
            {
                logger.Error("[" + MethodBase.GetCurrentMethod().Name + " - Error getting or showing Shinka ad: " + ex.ToString());
            }

            return gotShinkaAd; //so that the calling function knows if an ad was displayed
        }
示例#13
0
文件: GameMenus.cs 项目: edg3/random
        public void BuildMenu(DBUtil.UData ud, MessageToSend mes)
        {
            IMessageElement link;
            switch (ud.state)
            {
                case -2: //first time user
                    {
                        mes.AppendLine("Final War", TextMarkup.Bold);
                        mes.AppendLine();
                        mes.AppendLine("Welcome to Final War, the war to end all wars! Join the struggle to control the cyber world through brute force.");
                        mes.AppendLine();
                        mes.Append("It is your first time here, to get started use the ");
                        mes.Append("nick", TextMarkup.Underline);
                        mes.Append(" command to change your nickname (currently: " + ud.uname + ", this is the only free name change available), then why dont you read the ");

                        link = MessageBuilder.Elements.CreateLink("tuthelp",          // Optional
                                                          "help",             // Compulsory
                                                          "help",  // Optional
                                                          "help");        // Optional
                        mes.Append(link);

                        mes.AppendLine(" otherwise, head to the main menu to jump in.");

                        link = MessageBuilder.Elements.CreateLink("tutmenu",          // Optional
                                                          "Back to the menu.",             // Compulsory
                                                          "menu",  // Optional
                                                          "menu");        // Optional
                        mes.Append(link);
                        return;
                    }
                case 0: //main menu
                    {
                        mes.AppendLine("Final War", TextMarkup.Bold);
                        mes.AppendLine();
                        mes.AppendLine("Welcome back " + ud.uname + " what would you like to do?");
                        mes.AppendLine();

                        link = MessageBuilder.Elements.CreateLink("menu1",          // Optional
                                  "1) My Hideout",             // Compulsory
                                  "1",  // Optional
                                  "1");        // Optional
                        mes.AppendLine(link);

                        link = MessageBuilder.Elements.CreateLink("menu2",          // Optional
                                  "2) Bank",             // Compulsory
                                  "2",  // Optional
                                  "2");        // Optional
                        mes.AppendLine(link);

                        link = MessageBuilder.Elements.CreateLink("menu3",          // Optional
                                  "3) Tech",             // Compulsory
                                  "3",  // Optional
                                  "3");        // Optional
                        mes.AppendLine(link);

                        link = MessageBuilder.Elements.CreateLink("menu4",          // Optional
                                  "4) Gang",             // Compulsory
                                  "4",  // Optional
                                  "4");        // Optional
                        mes.AppendLine(link);

                        link = MessageBuilder.Elements.CreateLink("menu5",          // Optional
                                  "5) The streets",             // Compulsory
                                  "5",  // Optional
                                  "5");        // Optional
                        mes.AppendLine(link);

                        link = MessageBuilder.Elements.CreateLink("menu9",          // Optional
                                  "9) Leaderboards",             // Compulsory
                                  "9",  // Optional
                                  "9");        // Optional
                        mes.AppendLine(link);

                        link = MessageBuilder.Elements.CreateLink("menuhelp",          // Optional
                                  "help) Help",             // Compulsory
                                  "help",  // Optional
                                  "help");        // Optional
                        mes.AppendLine(link);

                        mes.AppendLine();
                        mes.AppendLine("News: " + Program.config.Notice);

                        return;
                    }
                case 1: //help menu
                    {
                        mes.AppendLine("Help", TextMarkup.Bold);
                        mes.AppendLine();
                        mes.AppendLine("Do stuff, kill people, level up");
                        mes.AppendLine();

                        link = MessageBuilder.Elements.CreateLink("helpmenu",          // Optional
                                  "Back",             // Compulsory
                                  "menu",  // Optional
                                  "menu");        // Optional
                        mes.Append(link);

                        return;
                    }
                case 2: //hideout
                    {
                        mes.AppendLine("Your Hideout", TextMarkup.Bold);
                        mes.AppendLine();
                        mes.AppendLine("Your stats:");
                        mes.AppendLine("Level: " + ud.level.ToString() + "  Exp: " + ud.exp.ToString());
                        mes.AppendLine();

                        link = MessageBuilder.Elements.CreateLink("hidemenu",          // Optional
                                  "Back",             // Compulsory
                                  "menu",  // Optional
                                  "menu");        // Optional
                        mes.Append(link);
                        return;
                    }
                case 3: //bank
                    {
                        mes.AppendLine("Your Bank Account", TextMarkup.Bold);
                        mes.AppendLine();
                        mes.AppendLine("Your bank details:");
                        mes.AppendLine("Bank Balance: $" + ud.bank.ToString());
                        mes.AppendLine("Wallet Balance: $" + ud.wallet.ToString());
                        mes.AppendLine();
                        mes.Append("Use the ");
                        mes.Append("with", TextMarkup.Underline);
                        mes.AppendLine(" command to withdraw money");
                        mes.Append("Use the ");
                        mes.Append("dep", TextMarkup.Underline);
                        mes.AppendLine(" command to deposit it");

                        link = MessageBuilder.Elements.CreateLink("bankback",          // Optional
                                  "Back",             // Compulsory
                                  "menu",  // Optional
                                  "menu");        // Optional
                        mes.Append(link);

                        return;
                    }
                case 4: //tech
                    {
                        mes.AppendLine("Your Tech", TextMarkup.Bold);
                        mes.AppendLine();
                        mes.AppendLine("Equips and Stats:");
                        mes.AppendLine("Atk: " + ud.atk.ToString() + "  Def: " + ud.def.ToString());
                        mes.Append("Armour: ");
                        if (ud.armour == -1)
                        {
                            mes.AppendLine("None");
                        }
                        else
                        {
                            mes.AppendLine(ud.armour.ToString() + "(armour ID)");
                        }
                        mes.Append("Gloves: ");
                        if (ud.gloves == -1)
                        {
                            mes.AppendLine("None");
                        }
                        else
                        {
                            mes.AppendLine(ud.gloves.ToString() + "(gloves ID)");
                        }
                        mes.Append("Helmet: ");
                        if (ud.helmet == -1)
                        {
                            mes.AppendLine("None");
                        }
                        else
                        {
                            mes.AppendLine(ud.helmet.ToString() + "(helmet ID)");
                        }
                        mes.Append("Weapon: ");
                        if (ud.weapon == -1)
                        {
                            mes.AppendLine("None");
                        }
                        else
                        {
                            mes.AppendLine(ud.weapon.ToString() + "(weapon ID)");
                        }
                        mes.AppendLine();
                        link = MessageBuilder.Elements.CreateLink("techback",          // Optional
                                  "Back",             // Compulsory
                                  "menu",  // Optional
                                  "menu");        // Optional
                        mes.Append(link);

                        return;
                    }
                case 5: //gang
                    {
                        mes.AppendLine("Your Gang", TextMarkup.Bold);
                        mes.AppendLine();
                        mes.AppendLine("Members, Message, factories, tax, etc");
                        mes.AppendLine();
                        link = MessageBuilder.Elements.CreateLink("gangback",          // Optional
                                  "Back",             // Compulsory
                                  "menu",  // Optional
                                  "menu");        // Optional
                        mes.Append(link);

                        return;
                    }
                case 6: //streets
                    {
                        mes.AppendLine("The Streets", TextMarkup.Bold);
                        mes.AppendLine();
                        mes.AppendLine("Fight, Level, etc");
                        mes.AppendLine();
                        link = MessageBuilder.Elements.CreateLink("streetback",          // Optional
                                  "Back",             // Compulsory
                                  "menu",  // Optional
                                  "menu");        // Optional
                        mes.Append(link);

                        return;
                    }

            }
        }
        private void appendBannerImage(ref MessageToSend messageToSend, MXit.User.UserInfo userInfo, BannerAd adTodisplay)
        {
            if ((AdvertConfig.bannerCacheSize > 0) && (messageToSend.ToDevice.HasFeature(DeviceFeatures.Gaming)))
            {
                //use ImageStrips to allow caching of images on users device
                string bannerHash = GetImageHash(adTodisplay.adImage);
                int cachePosition;
                if (!bannerHashMap.ContainsKey(bannerHash))
                {
                    cachePosition = lastCachePosition;
                    //we create a dictionary of ImageStrips with the required sizes
                    AdvertStripCollection bannerStrips = new AdvertStripCollection(bannerHash, adTodisplay.adImage);

                    bannerStripCache[cachePosition] = bannerStrips;
                    //remove any other hashes that are using this position
                    foreach (string key in bannerHashMap.Keys)
                    {
                        if (bannerHashMap[key] == cachePosition)
                            bannerHashMap.Remove(key);
                        break;
                    }
                    //and assign this position to the hash
                    bannerHashMap[bannerHash] = cachePosition;

                    //advance the pointer of the last added imagestrip.
                    lastCachePosition++;
                    if (lastCachePosition == AdvertConfig.bannerCacheSize)
                    {
                        lastCachePosition = 0;
                    }
                }
                else
                {
                    cachePosition = bannerHashMap[bannerHash];
                }

                string userSize = GetUserSize(userInfo);
                //this doesn't allow client-side auto resizing of images, may want to consider server side resizing
                ITable boardAd = MessageBuilder.Elements.CreateTable(messageToSend, "ad-" + bannerHash + "-" + userSize, 1, 1);
                boardAd.SelectionMode = SelectionRectType.Outline;
                boardAd.Style.Align = (AlignmentType)((int)AlignmentType.VerticalCenter + (int)AlignmentType.HorizontalCenter);
                boardAd.Mode = TableSendModeType.Update;
                //Mxit SDK 1.4.6 shows Frames.Set as obsolete, to be replaced with Frames.Add, but will break compatibility with older SDK's
                boardAd[0, 0].Frames.Set(bannerStripCache[cachePosition].GetStrip(userSize), 0);
                messageToSend.Append(boardAd);
            }

            else
            {
                int displayWidth = userInfo.DeviceInfo.DisplayWidth;
                int imageDisplayWidthPerc;

                if (displayWidth <= 128)
                {
                    imageDisplayWidthPerc = 99;
                }
                else
                {
                    imageDisplayWidthPerc = 100;
                }

                IMessageElement inlineImage = MessageBuilder.Elements.CreateInlineImage(adTodisplay.adImage, ImageAlignment.Center, TextFlow.AloneOnLine, imageDisplayWidthPerc);
                //IMessageElement inlineImage = MessageBuilder.Elements.CreateInlineImage(adTodisplay.adImageURL, ImageAlignment.Center, TextFlow.AloneOnLine);
                messageToSend.AppendLine(inlineImage);
            }
        }
        public bool appendShinkaBannerAd(ref MessageToSend messageToSend, MXit.User.UserInfo userInfo, String preselectedAdUnitID)
        {
            bool gotShinkaAd = false;

            try
            {
                if (AdvertConfig.isShowShinkaBannerAd)
                {
                    String MxitUserID = userInfo.UserId;
                    MXit.User.GenderType userGenderType = userInfo.Gender;
                    int displayWidth = userInfo.DeviceInfo.DisplayWidth;
                    int displayHeight = userInfo.DeviceInfo.DisplayHeight;
                    int userAge = AgeInYears(userInfo.DateOfBirth);

                    BannerAd adTodisplay;
                    gotShinkaAd = AdvertHelper.Instance.getBannerAd(MxitUserID, userGenderType, displayWidth, displayHeight, userAge, preselectedAdUnitID, out adTodisplay);

                    if (gotShinkaAd)
                    {
                        if (adTodisplay.creativeType == "image" && userInfo.DeviceInfo.DisplayWidth >= 320)
                        {
                            //an extra check to see that the image was retrieved
                            //Eric changed: if (adTodisplay.adImage == null)
                            if (adTodisplay.adImage == null)
                            {
                                return false;
                            }
                            else
                            {
                                appendBannerImage(ref messageToSend, userInfo, adTodisplay);
                            }

                        }

                        //If the Alt text is empty then don't display the link below the image:
                        if (!String.IsNullOrEmpty(adTodisplay.altText))
                        {
                            messageToSend.Append("Go to ", CSS.Ins.clr["light"], CSS.Ins.mrk["d"]);
                            String displayText = System.Net.WebUtility.HtmlDecode(adTodisplay.altText);
                            messageToSend.AppendLine(MessageBuilder.Elements.CreateBrowserLink(displayText, adTodisplay.clickURL));
                            messageToSend.AppendLine();
                        }
                        else //Don't display Alt text link:
                        {
                            messageToSend.AppendLine();
                        }

                        //register impression for the bannerad display
                        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adTodisplay.impressionURL);

                        req.UserAgent = "Mozilla Compatible";

                        Random random = new Random(DateTime.Now.Second);
                        int randomUpTo254 = random.Next(1, 254);
                        String tempIP = "196.11.239." + randomUpTo254;
                        req.Headers.Add("X-Forwarded-For", tempIP);

                        req.Referer = AdvertConfig.appID;

                        req.Timeout = AdvertConfig.bannerAdTimeout;
                        req.Proxy = null;
                        req.KeepAlive = false;
                        req.ServicePoint.ConnectionLeaseTimeout = 10000;
                        req.ServicePoint.MaxIdleTime = 10000;

                        QueueHelper_HTTP.Instance.QueueItem(req);
                    }
                }
                //zama end
            }
            catch (Exception ex)
            {
                logger.Error("[" + MethodBase.GetCurrentMethod().Name + " - Error getting or showing Shinka ad: " + ex.ToString());
            }

            return gotShinkaAd; //so that the calling function knows if an ad was displayed
        }
        public override MessageToSend getOutputScreenMessage(
            UserSession us,
            MenuPage mp,
            MessageToSend ms,
            InputHandlerResult ihr)
        {
            ms.Append(MessageBuilder.Elements.CreateClearScreen());
            if (!mp.GetType().FullName.Equals("MxitTestApp.VerseMenuPage"))//TODO: Should be constant
                throw new Exception("Invalid menu page passed into getScreen method ");

            VerseMenuPage omp = (VerseMenuPage)mp;
            ms.Append(omp.title + "\r\n", TextMarkup.Bold);
            ms.Append("\r\n");
            ms.Append("\r\n");
            if (ihr.error != null && ihr.action == InputHandlerResult.INVALID_MENU_ACTION)
            {
                ms.Append((string)ihr.error + "\r\n");
            }

            Boolean should_display_conf_message = displayMessage(us, ms, ihr);
            if (should_display_conf_message)
            {
                return ms;
            }
            ms.Append(parseMessage(us, omp.message) + "\r\n");

            /*else if (us.getVariable(FriendHandler.DELETED_FRIEND_NAME) != null)
            {
                friend_name = (String)us.removeVariable(FriendHandler.DELETED_FRIEND_NAME);
                ms.Append("You have removed " + friend_name + " from you buddy list.");
                ms.Append("\r\n");
                ms.Append("\r\n");
            }*/

                Boolean recip_is_set = false;
                //check if recipient is set already
                if (us.hasVariable(RECIPIENT_ID))
                {
                    String friend_id = us.getVariable(RECIPIENT_ID);
                    long l_friend_id = long.Parse(friend_id);
                    String user_name = UserNameManager.getInstance().getUserName(l_friend_id);
                    ms.Append("To: ");
                    ms.Append(user_name, TextMarkup.Bold);
                    ms.Append(" ");
                    ms.Append(createMessageLink(MENU_LINK_NAME, "[ edit ]", NotifMessageSendHandler.CHOOSE_FRIEND_ID));
                    recip_is_set = true;
                }
                else
                {
                    ms.Append("To: ");
                    ms.Append(createMessageLink(MENU_LINK_NAME, "[ edit ]", NotifMessageSendHandler.CHOOSE_FRIEND_ID));
                    ms.Append(" *");
                }

                ms.Append("\r\n");
                ms.Append("\r\n");

                if (us.hasVariable(MESSAGE_SUBJECT))
                {
                    String subject = us.getVariable(MESSAGE_SUBJECT);
                    ms.Append("Subject: ");
                    ms.Append(subject);
                    ms.Append(" ");
                }
                else
                {
                    ms.Append("Subject: ");
                }
                ms.Append(createMessageLink(MENU_LINK_NAME, "[ edit ]", NotifMessageSendHandler.ENTER_MESSAGE_SUBJECT));
                ms.Append("\r\n");
                ms.Append("\r\n");

                if (us.hasVariable(MESSAGE_TEXT))
                {
                    String message = us.getVariable(MESSAGE_TEXT);
                    ms.Append("Message: ");
                    ms.Append(message);
                    ms.Append(" ");
                }
                else
                {
                    ms.Append("Message: ");
                }
                ms.Append(createMessageLink(MENU_LINK_NAME, "[ edit ]", NotifMessageSendHandler.ENTER_MESSAGE));
                ms.Append("\r\n");
                ms.Append("\r\n");

                if (!recip_is_set)
                    ms.AppendLine("Fields marked with * has to be set before you can send the message");
                else
                    ms.AppendLine(createMessageLink(MENU_LINK_NAME, "Send Message", NotifMessageSendHandler.SEND_MESSAGE));

            ms.AppendLine("");
            appendBackMainLinks(us, ms);
            appendMessageConfig(true,  ms);
            return ms;
            //return output;
        }
        public override MessageToSend getOutputScreenMessage(
            UserSession us,
            MenuPage mp,
            MessageToSend ms,
            InputHandlerResult ihr)
        {
            ms.Append(MessageBuilder.Elements.CreateClearScreen());
            if (!mp.GetType().FullName.Equals("MxitTestApp.OptionMenuPage"))//TODO: Should be constant
                throw new Exception("Invalid menu page passed into getScreen method ");

            OptionMenuPage omp = (OptionMenuPage)mp;
            ms.Append(omp.title + "\r\n", TextMarkup.Bold);
            if (ihr.action == InputHandlerResult.INVALID_MENU_ACTION
                && ihr.error != null)
            {
                ms.Append((string)ihr.error + "\r\n");
            }
            else
            {
                ms.Append(parseMessage(us, omp.message) + "\r\n");
            }

            ms.AppendLine("Refer a friend to the BibleApp on MXit by using the link below. ");
            ms.AppendLine(createMessageLink(MENU_LINK_NAME, "Spread The Word", MainMenuHandler.REFER_A_FRIEND));

            ms.AppendLine();

            if (us.user_profile.is_suspended)
            {
                ms.Append("\r\n");
                ms.Append("You have been suspended from this application. Please email us at [email protected].");
                ms.Append("\r\n");
                ms.Append("\r\n");
                return ms;
            }

            if (us.hasVariable(UserSession.GUEST_USER_NAME_ASSIGNED))
            {
                ms.Append("\r\n");
                ms.Append("You have been assigned a guest user name. To remove this message please change your user name in the profile option below.");
                ms.Append("\r\n");
                ms.Append("\r\n");
            }

            if (us.bookmark_manager.bookmark_verse != null)
            {
                ms.Append("To continue reading where you left off ");
                ms.Append(createMessageLink(MENU_LINK_NAME, "Click Here", "BOOKMARK"));
                ms.Append("\r\n");
                ms.Append("\r\n");
                ms.Append("Or choose an option below...\r\n");
            }
            else
            {
                ms.Append("Choose an option below...\r\n");
            }

            List<MenuOptionItem> options = omp.options;
            int count =1 ;
            foreach (MenuOptionItem option in options)
            {
                ms.Append(createMessageLink(MENU_LINK_NAME, count + ") ", option.link_val));
                if (option.menu_option_id == MY_PROFILE_OPTION_ID)
                {
                    if (us.hasNewEvent())
                    {
                        ms.Append(option.display_text + " (!)\r\n", TextMarkup.Bold);
                    }
                    else
                    {
                        ms.Append(option.display_text + "\r\n");
                    }
                }
                else
                {
                    ms.Append(option.display_text + "\r\n");
                }

                count++;
            }
            appendBackMainLinks(us,  ms);
            appendMessageConfig(true, ms);

            ms.AppendLine("");

            ms.AppendLine("");
            ms.AppendLine("Shortcuts...", TextMarkup.Bold);
            ms.Append(createMessageLink(MENU_LINK_NAME, "Inbox", MainMenuHandler.MESSAGE_INBOX));
            if (us.hasNewMessageEvent())
            {
                ms.Append(" (NEW)", TextMarkup.Bold);
            }

            if (us.hasNewFriendRequest())
            {
                ms.Append(" | ");
                ms.Append(createMessageLink(MENU_LINK_NAME, "Buddy Requests", MainMenuHandler.BUDDY_REQUESTS));
                ms.Append(" (NEW)", TextMarkup.Bold);
            }

            ms.Append(" | ");
            ms.Append(createMessageLink(MENU_LINK_NAME, "Help", MainMenuHandler.HELP));

            ms.Append(" | ");
            ms.Append(createMessageLink(MENU_LINK_NAME, "About Us", MainMenuHandler.ABOUT));

            ms.Append(" | ");
            ms.Append(createMessageLink(MENU_LINK_NAME, "Change Colours", MainMenuHandler.COLOUR_CHANGE));

            ms.AppendLine();
            ms.AppendLine();
            UserColourTheme uct = UserColourTheme.getColourTheme(us.user_profile.user_profile_custom.colour_theme);
            if (uct != null)
            {
                Color color = uct.getTipTextColour();
                ms.AppendLine("Tip: Check out the profile section and if your friends use the BibleApp add them as buddies so that you can send them verses. For a start add us, our code is CBTJXP. ",color);
            }
            else
            {
                ms.AppendLine("Tip: Check out the profile section and if your friends use the BibleApp add them as buddies so that you can send them verses. For a start add us, our code is CBTJXP. ");
            }
            ms.AppendLine();
            ms.AppendLine();
            //ADMIN AREA
            if (us.user_profile.is_admin)
            {
                ms.AppendLine("ADMIN AREA");
                ms.AppendLine("");
                ms.Append(createMessageLink(MENU_LINK_NAME, "Send Notification", MainMenuHandler.SEND_NOTIFICATION));
                //ms.AppendLine("");
                //ms.Append(createMessageLink(MENU_LINK_NAME, "Send Notification", MainMenuHandler.SEND_NOTIFICATION));
            }

            return ms;
            //return output;
        }
示例#18
0
 public Boolean displayMessage(UserSession us, MessageToSend ms, InputHandlerResult ihr)
 {
     if (ihr.action == InputHandlerResult.DISPLAY_MESSAGE)
     {
         ms.Append(MessageBuilder.Elements.CreateClearScreen());
         ms.Append(ihr.message + "\r\n");
         appendBackMainLinks(us, ms);
         appendMessageConfig(true, ms);
         us.setVariable(AInputHandler.DISPLAY_MESSAGE , "Message sent");//you must be sure to remove this from hash table in handler.
         return true;
     }
     return false;
 }
示例#19
0
        //this adds pagination links depending on the count passed into it and the current page the user
        //is on
        public void appendPaginateLinks(
            UserSession us,
            MessageToSend ms,
            int count)
        {
            int cur_page_limit = 0;
            if (!us.current_menu_loc.Equals(MenuDefinition.ROOT_MENU_ID))
            {
                cur_page_limit = MenuDefinition.PAGE_ITEM_COUNT * (us.current_menu_page+1);

                if ((cur_page_limit > MenuDefinition.PAGE_ITEM_COUNT))
                    ms.Append(createMessageLink(MENU_LINK_NAME, "Previous", "PREV"));

                if ((cur_page_limit > MenuDefinition.PAGE_ITEM_COUNT)
                    && (cur_page_limit < count))
                ms.Append(" | ");

                if ((cur_page_limit < count))
                    ms.Append(createMessageLink(MENU_LINK_NAME, "Next", "NEXT"));

                if (count > MenuDefinition.PAGE_ITEM_COUNT)
                    ms.Append("\r\n");
            }
        }
示例#20
0
 /*adds refresh link on new line*/
 public void appendRefreshLink(MessageToSend ms)
 {
     ms.Append(createMessageLink(MENU_LINK_NAME, "Refresh", "Refresh"));
     ms.AppendLine();
 }
        //this adds pagination links depending on the count passed into it and the current page the user
        //is on
        public override void appendPaginateLinks(
            UserSession us,
            MessageToSend ms,
            int count,
            int count_per_page)
        {
            int cur_page_limit = 0;
            int num_pages = 0;
            int current_page = Int32.Parse(us.getVariable(MessageInboxHandler.CURRENT_MESSAGE_THREAD));
            if (!us.current_menu_loc.Equals(MenuDefinition.ROOT_MENU_ID))
            {
                cur_page_limit = count_per_page * (current_page + 1);
                int rem = count % count_per_page;
                num_pages = count / count_per_page;
                if (rem > 0)
                    num_pages += 1;
                if ((cur_page_limit > count_per_page))
                {
                    if (num_pages > 2 && current_page > 0)
                    {
                        ms.Append(createMessageLink(MENU_LINK_NAME, "First", AInputHandler.FIRST_PAGE));
                        ms.Append(" | ");
                    }
                    ms.Append(createMessageLink(MENU_LINK_NAME, "Previous", AInputHandler.PREV_PAGE));
                }
                if ((cur_page_limit > count_per_page)
                    && (cur_page_limit < count))
                    ms.Append(" | ");

                if ((cur_page_limit < count))
                {
                    ms.Append(createMessageLink(MENU_LINK_NAME, "Next", AInputHandler.NEXT_PAGE));
                    if (num_pages > 2 && current_page < num_pages - 1)
                    {
                        ms.Append(" | ");
                        ms.Append(createMessageLink(MENU_LINK_NAME, "Last", AInputHandler.LAST_PAGE + "_" + (num_pages - 1)));
                    }
                }
                if (count > count_per_page)
                    ms.Append("\r\n");
            }
        }
示例#22
0
        public override void parseAndAppendBibleText(
            List<Verse> list,
            MessageToSend ms,
            UserColourTheme uct)
        {
            Color color = Color.Empty;
            if (uct != null)
                color = uct.getBibleTextColour();
            string tmp = "";
            Boolean is_last_verse_in_section = false;
            //int verse_end_id = 0;
            int current_chapter = -1;
            if (list.Count > 0)
                current_chapter = list[0].chapter.chapter_id;
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i] != null)
                {
                    if (list[i].chapter.chapter_id != current_chapter)
                    {
                        if(uct!=null)
                            ms.Append("\r\n" + list[i].book.name + " " + list[i].chapter.chapter_id + "\r\n", color, TextMarkup.Bold);
                        else
                            ms.Append("\r\n" + list[i].book.name + " " + list[i].chapter.chapter_id + "\r\n", TextMarkup.Bold);
                    }

                    //   verse_end_id = list[i].verse_id;
                    is_last_verse_in_section = i == (list.Count - 1);
                    if (i == 0)
                    {
                        appendText(ms, list[i], true, is_last_verse_in_section, uct);
                    }
                    else
                    {

                        appendText(ms, list[i], false, is_last_verse_in_section, uct);
                    }
                }
                current_chapter = list[i].chapter.chapter_id;
            }
            // section += verse_end_id.ToString();
            if (uct != null)
                ms.Append(tmp + "\r\n", color);
            else
                ms.Append(tmp + "\r\n");
        }
        protected void appendMessageThread(
            UserSession us,
            MessageToSend ms,
            VerseMessageThread vmt)
        {
            Boolean is_new = false;
            String verse_ref = "";
            String message;
            List<VerseMessage> messages = vmt.getMessages();
            VerseMessage first_vm = messages.First();
            VerseMessage last_vm = messages.Last();

            ms.AppendLine("");
            ms.Append(createMessageLink(MENU_LINK_NAME, "*", MessageInboxHandler.OPEN_THREAD + vmt.thread_id));
            //determine if there is a new message in this thread by comparing last updated and read dates.
            ms.Append(" ");

            DateTime last_mod_date = vmt.datetime_last_modified;
            VerseMessageParticipant vmp = vmt.getParticipant(us.user_profile.id);

            DateTime last_acc_date = DateTime.MaxValue;
            if (vmp != null)
                last_acc_date = vmp.datetime_last_read;
            is_new = last_mod_date > last_acc_date;
            String subject = vmt.subject;
            ms.Append("From: ");
            if (first_vm.sender_id == us.user_profile.id)
            {
                ms.AppendLine("You ", TextMarkup.Bold);
            }
            else
            {
                ms.AppendLine(" " + UserNameManager.getInstance().getUserName(first_vm.sender_id), TextMarkup.Bold);
            }

            ms.Append("To: ");
            List<VerseMessageParticipant> parts = vmt.getListOfParticipants();
            String receivers = getRecieverString(us, parts,first_vm.sender_id);

            ms.AppendLine(receivers, TextMarkup.Bold);

            if (!VerseMessageThread.NOTIFICATION_THREAD.Equals(vmt.start_verse))
            {
                verse_ref = BibleHelper.getVerseSectionReference(us, vmt.start_verse, vmt.end_verse);
                ms.AppendLine("Verse: " + verse_ref);
            }
            if (!(subject == null || subject.Equals("") || subject.Equals("NULL")))
            {
                ms.AppendLine("Subject: '" + subject + "'");
                //ms.Append();
                //ms.AppendLine("'");
            }
            message = last_vm.message_text;
            if(!(message== null || message.Equals("") || message.Equals("NULL")))
                ms.AppendLine("Newest Message: " + StringUtils.getTextSummary(message, 4) + "...'  ("+messages.Count+" messages)");

            //ms.AppendLine("");
            if (last_vm != null)
            {
                ms.Append("Last Updated by ");
                if (last_vm.sender_id == us.user_profile.id)
                {
                    ms.Append("You (");
                }
                else
                {
                    ms.Append(UserNameManager.getInstance().getUserName(last_vm.sender_id) + " (");
                }
                if (is_new)
                {
                    ms.Append(DateUtils.RelativeDate(last_mod_date),TextMarkup.Bold);
                    ms.AppendLine(")");
                }
                else
                {
                    ms.AppendLine(DateUtils.RelativeDate(last_mod_date) + ")");
                }
            }

            ms.Append(createMessageLink(MENU_LINK_NAME, "[DELETE]", MessageInboxHandler.DELETE_THREAD + vmt.thread_id));
            ms.AppendLine(" ");
            ms.Append("\r\n");
        }
示例#24
0
        /*protected String parseSCTags(
            String text)
        {
            int b_index = text.IndexOf("scstart-");
            String sc_text;
            string message_text = "";
            if (b_index != -1)
            {
                int e_index = text.IndexOf("-scend");
                string variable_name = text.Substring(b_index + 1, e_index - b_index - 1);
                sc_text = text.Substring(start_title_index, end_title_index - start_title_index );
                message_text = parseMessage(us, message.Replace('[' + variable_name + ']', us.getVariable(variable_name)));

            }
        }*/
        /*replace info tags and div tags*/
        protected void parseText(
            MessageToSend ms,
            Verse verse,
            Boolean is_first_verse,
            Boolean is_last_verse,
            UserColourTheme uct)
        {
            Color color = Color.Empty;
            if (uct != null)
                color = uct.getBibleTextColour();
            String tag_contents = "";
            int start_title_index = -1;
            int end_title_index = -1;
            String paragraph_title = "";
            Boolean start_of_verse = true;

            String  message = parseSCTags(verse.text);
            message = parseXMLCodes(message);
            if (is_first_verse)
            {
                Verse prev_verse = verse.getPreviousVerse();
                if (prev_verse != null)
                {
                    String initial_title = getParagaphTitleFromVerse(prev_verse);
                    //test if title is at beginning of verse....
                    if (initial_title != null)
                    {
                        //first test if title is at the beginning of string and
                        String prev_verse_test = removeTags(prev_verse.text).Trim();
                        if (prev_verse_test.IndexOf(initial_title) != 0)
                        {
                            ms.Append("\r\n");
                            if(uct!=null)
                                ms.Append(removeTags(initial_title), color,new TextMarkup[] { TextMarkup.Bold });
                            else
                                ms.Append(removeTags(initial_title), new TextMarkup[] { TextMarkup.Bold });
                            ms.Append("\r\n");
                        }
                    }
                }
            }
            int b_index = message.IndexOf('<');
            if (b_index == -1)
            {
                if(uct!=null)
                    ms.Append(message,color);
                else
                    ms.Append(message);
                return;
            }
            while (b_index != -1)
            {
                int e_index = message.IndexOf('>');
                if (e_index == -1)
                {
                    Console.WriteLine("NO CLOSING TAG FOUND FOR A VERSE: " + message);
                    return;
                }
                tag_contents = message.Substring(b_index + 1, e_index - b_index - 1);
                if (tag_contents.Contains(PARAGRAPH_TITLE_TAG))
                {
                    end_title_index = message.IndexOf("<lb>", e_index);
                    start_title_index = message.IndexOf("<head>") + 6; // move past head tag also
                    paragraph_title = message.Substring(start_title_index, end_title_index - start_title_index /*- 1*/);
                    if ((is_first_verse || !is_last_verse) && paragraph_title != null && !paragraph_title.Trim().Equals("")
                        && !(is_first_verse && is_last_verse && !start_of_verse))
                    {
                            ms.Append("\r\n");
                            if(uct!=null)
                                ms.Append(paragraph_title.Trim(),color, new TextMarkup[] { TextMarkup.Bold });
                            else
                                ms.Append(paragraph_title.Trim(), new TextMarkup[] { TextMarkup.Bold });
                            ms.Append("\r\n");
                            ms.Append("\r\n");
                    }
                    message = message.Remove(b_index, end_title_index - b_index + 4);
                }
                else if (tag_contents.Contains(PARAGRAPH_TAG))
                {
                    if (start_of_verse)
                    {
                        if(uct!=null)
                            ms.Append(" (" + verse.verse_id + ") ",color, TextMarkup.Bold);
                        else
                            ms.Append(" (" + verse.verse_id + ") ", TextMarkup.Bold);
                        start_of_verse = false;
                    }
                    if(uct!=null)
                        ms.Append(removeTags(message.Substring(0, b_index)),color);
                    else
                        ms.Append(removeTags(message.Substring(0, b_index)));
                    if(!(verse.chapter.chapter_id == 1 && verse.verse_id == 1))
                    {
                        ms.Append("\r\n");
                       // ms.Append("\r\n");
                    }
                    message = message.Remove(0, e_index+1);
                }
               /* else if (tag_contents.Equals(ITALIC_TAG))
                {
                    if (start_of_verse)
                    {
                        ms.Append(" (" + verse.verse_id + ") ", TextMarkup.Bold);
                        start_of_verse = false;
                    }
                    ms.Append(message.Substring(0, b_index));
                    message = message.Remove(0, e_index + 1); //remove opening tag and previous text
                    int e_italic_index = message.IndexOf("<" + END_ITALIC_TAG + ">");
                    ms.Append(message.Substring(0, e_italic_index), TextMarkup.Italics);
                    message = message.Remove(0, e_italic_index+ 4); //remove closing tag and previous text
                }
                else if (tag_contents.Equals(BOLD_TAG))
                {
                    if (start_of_verse)
                    {
                        ms.Append(" (" + verse.verse_id + ") ", TextMarkup.Bold);
                        start_of_verse = false;
                    }
                    ms.Append(message.Substring(0, b_index));
                    message = message.Remove(0, e_index + 1); //remove opening tag and previous text
                    int e_italic_index = message.IndexOf("<" + END_BOLD_TAG + ">");
                    ms.Append(message.Substring(0, e_italic_index), TextMarkup.Bold);
                    message = message.Remove(0, e_italic_index + 4); //remove closing tag and previous text
                }*/
                else
                {
                    message = message.Remove(b_index, e_index - b_index+1);
                }
                b_index = message.IndexOf('<');
            }
            if (start_of_verse)
            {
                if(uct!=null)
                    ms.Append(" (" + verse.verse_id + ") ", color, TextMarkup.Bold);
                else
                    ms.Append(" (" + verse.verse_id + ") ", TextMarkup.Bold);
            }
            if (uct != null)
            {
                ms.Append(parseSCTags(removeTags(message)), color);
            }
            else
            {
                ms.Append(parseSCTags(removeTags(message)));
            }
        }
        public override MessageToSend getOutputScreenMessage(
            UserSession us,
            MenuPage mp,
            MessageToSend ms,
            InputHandlerResult ihr)
        {
            ms.Append(MessageBuilder.Elements.CreateClearScreen());
            if (!mp.GetType().FullName.Equals("MxitTestApp.VerseMenuPage"))//TODO: Should be constant
                throw new Exception("Invalid menu page passed into getScreen method ");

            VerseMenuPage omp = (VerseMenuPage)mp;
            ms.Append(omp.title + "\r\n", TextMarkup.Bold);
            ms.Append("\r\n");
            ms.Append("\r\n");
            if (ihr.error != null && ihr.action == InputHandlerResult.INVALID_MENU_ACTION)
            {
                ms.Append((string)ihr.error + "\r\n");
            }

            Boolean should_display_conf_message = displayMessage(us, ms, ihr);
            if (should_display_conf_message)
            {
                return ms;
            }
            ms.Append(parseMessage(us, omp.message) + "\r\n");

            /*else if (us.getVariable(FriendHandler.DELETED_FRIEND_NAME) != null)
            {
                friend_name = (String)us.removeVariable(FriendHandler.DELETED_FRIEND_NAME);
                ms.Append("You have removed " + friend_name + " from you buddy list.");
                ms.Append("\r\n");
                ms.Append("\r\n");
            }*/

            if (us.friend_manager.getFriends().Count <= 0)
            {
                ms.Append("You dont have any buddies added, you need to first invite buddies in order to send Verses to them.");
                ms.Append("\r\n");
                ms.Append("\r\n");
            }
            else
            {
                Boolean recip_is_set = false;
                //check if recipient is set already

                if (us.hasVariable(ChooseFriendHandler.RECIPIENT_LIST) && ((List<long>)us.getVariableObject(ChooseFriendHandler.RECIPIENT_LIST)).Count > 0)
                {
                    String friend_list = getCurrentSendList(us);
                    ms.Append("To: ");
                    ms.Append(friend_list);
                    ms.Append(" ");
                    ms.Append(createMessageLink(MENU_LINK_NAME, "[ edit ]", VerseMessageSendHandler.CHOOSE_FRIEND_ID));
                    recip_is_set = true;
                }
                else
                {
                    ms.Append("To: ");
                    ms.Append(createMessageLink(MENU_LINK_NAME, "[ edit ]", VerseMessageSendHandler.CHOOSE_FRIEND_ID));
                    ms.Append(" *");
                }

                ms.Append("\r\n");
                ms.Append("\r\n");

                VerseSection vs = (VerseSection)us.getVariableObject("Browse.verse_section");
                if (vs == null)
                {
                    Console.WriteLine("Expected Browse.verse_section present, but not found");
                }
                else
                {
                    Verse start_verse = vs.start_verse;
                    Verse end_verse = vs.end_verse;
                    if (end_verse == null)
                    {
                        end_verse = BrowseBibleScreenOutputAdapter.getDefaultEndVerse(start_verse);
                    }

                    ms.Append("Verse: ");
                    ms.Append(BibleHelper.getVerseSectionReference(start_verse, end_verse), TextMarkup.Bold);
                    ms.Append("\r\n");
                    ms.Append("\r\n");
                }

                if (us.hasVariable(MESSAGE_SUBJECT))
                {
                    String subject = us.getVariable(MESSAGE_SUBJECT);
                    ms.Append("Subject: ");
                    ms.Append(subject);
                    ms.Append(" ");
                }
                else
                {
                    ms.Append("Subject: ");
                }
                ms.Append(createMessageLink(MENU_LINK_NAME, "[ edit ]", VerseMessageSendHandler.ENTER_MESSAGE_SUBJECT));
                ms.Append("\r\n");
                ms.Append("\r\n");

                if (us.hasVariable(MESSAGE_TEXT))
                {
                    String message = us.getVariable(MESSAGE_TEXT);
                    ms.Append("Message: ");
                    ms.Append(message);
                    ms.Append(" ");
                }
                else
                {
                    ms.Append("Message: ");
                }
                ms.Append(createMessageLink(MENU_LINK_NAME, "[ edit ]", VerseMessageSendHandler.ENTER_MESSAGE));
                ms.Append("\r\n");
                ms.Append("\r\n");

                if (!recip_is_set)
                    ms.AppendLine("Fields marked with * has to be set before you can send the message");
                else
                    ms.AppendLine(createMessageLink(MENU_LINK_NAME, "Send Message", VerseMessageSendHandler.SEND_MESSAGE));
            }
            ms.AppendLine("");
            appendBackMainLinks(us, ms);
            appendMessageConfig(true,  ms);
            return ms;
            //return output;
        }
        public override void addLinksToMessageFromList(
            UserSession us,
            List<MenuOptionItem> list,
            MessageToSend ms)
        {
            int count = (us.current_menu_page * PAGE_ITEM_COUNT) + 1;

            int starting_index = us.current_menu_page * PAGE_ITEM_COUNT;
            ms.AppendLine();

            for (int i = starting_index;
                i < list.Count && i < starting_index + PAGE_ITEM_COUNT;
                i++)
            {
                TaggedVerseMenuOptionItem an_option = (TaggedVerseMenuOptionItem) list[i];
                ms.Append(createMessageLink(MENU_LINK_NAME, count + ") ", an_option.link_val));
                VerseTag verse_tag = an_option.verse_tag;
                String start_verse = verse_tag.start_verse;
                String end_verse = verse_tag.end_verse;

                /*if (verse_tag.datetime != null && verse_tag.datetime != DateTime.MinValue && !"".Equals(verse_tag.datetime))
                {
                    date_tagged = verse_tag.datetime.ToString("dd/MM/yy");
                }
                else
                {
                    date_tagged = "";
                }*/

                bool is_liked = verse_tag.isLikedByUser(us.user_profile.id);
                int like_count = verse_tag.getLikeCount();
                String like_string;
                if (like_count == 0)
                {
                    like_string = "";
                }
                else if (is_liked && like_count == 1)
                {
                    like_string = "(you like this)";
                }
                else if (!is_liked && like_count == 1)
                {
                    like_string = "(1 person likes this)";
                }
                else if (is_liked && like_count == 2)
                {
                    like_string = "(you and " + (like_count-1) + " other person like this)";
                }
                else if (is_liked && like_count > 2)
                {
                    like_string = "(you and " + (like_count-1) + " other people like this)";
                }
                else if (!is_liked && like_count > 1)
                {
                    like_string = "("+like_count + " people likes this)";
                }
                else
                {
                    like_string = "";
                }
                String rel_date = DateUtils.RelativeDate(verse_tag.datetime);

                Verse s_v = Verse_Handler.getStartingVerse(us.user_profile.getDefaultTranslationId(), start_verse);
                Verse e_v;
                if (s_v != null)
                {
                    if (end_verse == null || "".Equals(end_verse) || end_verse.Equals(start_verse))
                        e_v = null;
                    else if ("NULL".Equals(end_verse))
                        e_v = BrowseBibleScreenOutputAdapter.getDefaultEndVerse(s_v);
                    else
                        e_v = Verse_Handler.getStartingVerse(us.user_profile.getDefaultTranslationId(), end_verse);
                    String verse_summ = BibleContainer.getSummaryOfVerse(s_v, 7);
                    String user_name = UserNameManager.getInstance().getUserName(verse_tag.user_id);
                    String verse_ref = BibleHelper.getVerseSectionReferenceWithoutTranslation(s_v, e_v);
                    if (start_verse == null || end_verse == null)
                    {
                        ms.Append("N/A");
                    }
                    else
                    {
                        ms.Append(verse_ref,TextMarkup.Bold);
                        ms.Append(" (");
                        ms.Append(rel_date,TextMarkup.Italics);
                        ms.Append(") - " + verse_summ + "... ");
                        ms.Append(like_string, TextMarkup.Bold);
                        if (!is_liked)
                        {
                            ms.Append(createMessageLink(MENU_LINK_NAME, " [+]", LIKE_TAG + verse_tag.id));
                        }
                        ms.AppendLine("");
                        ms.Append("Tagged by: ");
                        ms.AppendLine(user_name,TextMarkup.Bold);

                        //ms.Append(like_string);
                    }
                }
                else
                {
                    ms.Append("Currently not available in your chosen translation (this could be due to a S/W bug).");
                }
                ms.Append("\r\n");
                count++;
            }
            appendRefreshLink(ms);
        }
        public bool appendShinkaBannerAd(ref MessageToSend messageToSend, MXit.User.UserInfo userInfo)
        {
            bool gotShinkaAd = false;

            try
            {
                if (AdvertConfig.isShowShinkaBannerAd)
                {
                    String MxitUserID = userInfo.UserId;
                    MXit.User.GenderType userGenderType = userInfo.Gender;
                    int displayWidth = userInfo.DeviceInfo.DisplayWidth;
                    int displayHeight = userInfo.DeviceInfo.DisplayHeight;
                    int userAge = AgeInYears(userInfo.DateOfBirth);

                    BannerAd adTodisplay;
                    gotShinkaAd = AdvertHelper.Instance.getBannerAd(MxitUserID, userGenderType, displayWidth, displayHeight, userAge, out adTodisplay);

                    if (gotShinkaAd)
                    {
                        if (adTodisplay.creativeType == "image")
                        {
                            IMessageElement inlineImage = MessageBuilder.Elements.CreateInlineImage(adTodisplay.adImage, ImageAlignment.Center, TextFlow.AloneOnLine, 100);
                            messageToSend.Append(inlineImage);
                        }

                        messageToSend.Append("Go to ", CSS.Ins.clr["light"], CSS.Ins.mrk["d"]);
                        messageToSend.AppendLine(MessageBuilder.Elements.CreateLink(adTodisplay.altText, ".clickad~" + adTodisplay.clickURL));
                        messageToSend.AppendLine();

                        //register impression for the bannerad display
                        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adTodisplay.impressionURL);

                        req.UserAgent = "Mozilla Compatible mxit_client";
                        req.Headers.Add("HTTP_X_DEVICE_USER_AGENT", "Mozilla Compatible mxit_client");
                        req.Headers.Add("HTTP_X_FORWARDED_FOR", MxitUserID);
                        req.Headers.Add("HTTP_REFERER", AdvertConfig.appID);

                        req.Timeout = AdvertConfig.bannerAdTimeout;
                        req.Proxy = null;
                        req.KeepAlive = false;
                        req.ServicePoint.ConnectionLeaseTimeout = 1000;
                        req.ServicePoint.MaxIdleTime = 1000;

                        QueueHelper_HTTP.Instance.QueueItem(req);
                    }
                }
                //zama end
            }
            catch (Exception ex)
            {
                logger.Error("[" + MethodBase.GetCurrentMethod().Name + " - Error getting or showing Shinka ad: " + ex.ToString());
            }

            return gotShinkaAd; //so that the calling function knows if an ad was displayed
        }
 public void appendCurrentSendList(
     UserSession us,
     MessageToSend ms)
 {
     if (us.hasVariable(ChooseFriendHandler.RECIPIENT_LIST))
     {
         List<long> recipient_list = (List<long>)us.getVariableObject(ChooseFriendHandler.RECIPIENT_LIST);
         ms.AppendLine();
         ms.Append("Recipients: ", TextMarkup.Bold);
         if (recipient_list.Count > 0)
         {
             for (int i = 0; i < recipient_list.Count; i++)
             {
                 ms.Append(UserNameManager.getInstance().getUserName(recipient_list[i]) + " ");
                 ms.Append(createMessageLink(MENU_LINK_NAME, "[-]", "REMOVE_" + recipient_list[i]));
                 if (recipient_list.Count > 1 && (i != recipient_list.Count - 1))
                     ms.Append(", ");
             }
         }
         else
         {
             ms.Append("Empty");
         }
         ms.AppendLine();
     }
     else
     {
         ms.Append("Recipients: ", TextMarkup.Bold);
         ms.Append("Empty");
         ms.AppendLine();
     }
 }
示例#29
0
        public void appendBackMainLinks(UserSession us, MessageToSend ms)
        {
            if (!us.current_menu_loc.Equals(MenuDefinition.ROOT_MENU_ID))
            {
                MenuManager mm = MenuManager.getInstance();
                MenuPage mp;
                mp = mm.menu_def.getMenuPage(us.current_menu_loc);
                int count_links = 0;

                if (mp.isBackLinkEnabled())
                    count_links++;
                if (mp.isMainLinkEnabled())
                    count_links++;
                if (mp.hasHelpPage())
                    count_links++;

                if (mp.isBackLinkEnabled())
                {
                    ms.Append(createMessageLink(MENU_LINK_NAME, "Back", "BACK"));
                    if (mp.isMainLinkEnabled() || mp.hasHelpPage())
                        ms.Append(" | ");
                }
                if (mp.isMainLinkEnabled())
                {
                    ms.Append(createMessageLink(MENU_LINK_NAME, "Main", "MAIN"));
                }
                if (mp.hasHelpPage())
                {
                    if (mp.isMainLinkEnabled())
                        ms.Append(" | ");
                    ms.Append(createMessageLink(MENU_LINK_NAME, "Help", "HELP"));
                }
            }
        }