Example #1
0
    private void SelectDatatoShow(NoticeSys.NoticeDataEx ex)
    {
        string empty = string.Empty;
        string text  = "0";

        if (this.IsShowTimes(ex.apolloNoticeData.MsgID, ex.maxShowCount, out empty, out text))
        {
            string value = string.Format("{0}_{1}", ex.apolloNoticeData.MsgID, text);
            this.SaveShowTime(empty, value);
            this.m_NoticeDataList.Add(ex);
        }
    }
Example #2
0
    public void OnOpenForm(ApolloNoticeInfo noticeInfo, NoticeSys.NOTICE_STATE noticeState)
    {
        this.m_CurState       = noticeState;
        this.m_NoticeDataList = new ListView <NoticeSys.NoticeDataEx>();
        this.m_MatchUrlAction.Clear();
        ListView <NoticeSys.NoticeDataEx> listView = new ListView <NoticeSys.NoticeDataEx>();
        int count = noticeInfo.DataList.get_Count();

        for (int i = 0; i < count; i++)
        {
            ApolloNoticeData apolloNoticeData = noticeInfo.DataList.get_Item(i);
            if (apolloNoticeData.MsgType == APOLLO_NOTICETYPE.APO_NOTICETYPE_ALERT)
            {
                ListView <UrlAction> listView2 = UrlAction.ParseFromText(apolloNoticeData.ContentUrl, null);
                if (listView2.Count > 0 && listView2[0].action == UrlAction.Action.openMatchUrl)
                {
                    this.m_MatchUrlAction.Add(listView2[0]);
                }
                else
                {
                    NoticeSys.NoticeDataEx noticeDataEx = new NoticeSys.NoticeDataEx();
                    noticeDataEx.apolloNoticeData = apolloNoticeData;
                    if (noticeState == NoticeSys.NOTICE_STATE.LOGIN_After)
                    {
                        if (apolloNoticeData.ContentType == APOLLO_NOTICE_CONTENTTYPE.APO_CONTENTTYPE_WEB && this.IsImageNotice(ref noticeDataEx))
                        {
                            listView.Add(noticeDataEx);
                        }
                        else
                        {
                            this.m_NoticeDataList.Add(noticeDataEx);
                        }
                    }
                    else
                    {
                        this.m_NoticeDataList.Add(noticeDataEx);
                    }
                }
            }
        }
        this.InitImageShowTimes();
        this.FiterImageNotice(listView);
        if (this.m_NoticeDataList.Count > 0)
        {
            this.ShowNoticeWindow(0);
        }
        else if (this.m_CurState == NoticeSys.NOTICE_STATE.LOGIN_After)
        {
            this.ShowOtherTips();
        }
    }
Example #3
0
    private bool IsImageNotice(ref NoticeSys.NoticeDataEx ImageData)
    {
        NoticeSys.NoticeDataEx noticeDataEx = ImageData;
        string text = noticeDataEx.apolloNoticeData.MsgUrl;

        if (string.IsNullOrEmpty(text))
        {
            return(false);
        }
        int num    = text.IndexOf("&end");
        int length = text.get_Length();

        if (num > 0 && num + "&end".get_Length() == length)
        {
            return(false);
        }
        string[] array = text.Split(new char[]
        {
            '&'
        });
        for (int i = 0; i < array.Length; i++)
        {
            if (array[i].IndexOf("Count=", 1) >= 0)
            {
                string text2 = array[i].Replace("Count=", string.Empty);
                if (!string.IsNullOrEmpty(text2))
                {
                    int.TryParse(text2, ref noticeDataEx.maxShowCount);
                }
            }
            else if (array[i].IndexOf("Mode=", 1) >= 0)
            {
                string text3 = array[i].Replace("Mode=", string.Empty);
                if (!string.IsNullOrEmpty(text3))
                {
                    int playMode = 0;
                    int.TryParse(text3, ref playMode);
                    noticeDataEx.playMode = (NoticeSys.NoticePlayMode)playMode;
                }
            }
        }
        if (num + "&end".get_Length() < length && num >= 0)
        {
            text = text.Substring(0, num + "&end".get_Length());
            noticeDataEx.apolloNoticeData.MsgUrl = text;
            ImageData = noticeDataEx;
            return(true);
        }
        return(false);
    }
Example #4
0
    private void FiterImageNotice(ListView <NoticeSys.NoticeDataEx> datalist)
    {
        int count = datalist.Count;

        if (count > 0 && count <= 3)
        {
            for (int i = 0; i < count; i++)
            {
                NoticeSys.NoticeDataEx ex = datalist[i];
                this.SelectDatatoShow(ex);
            }
            return;
        }
        datalist.Sort(new NoticeSys.CNoticeDataExAscendingHelper());
        ListView <NoticeSys.NoticeDataEx> listView  = new ListView <NoticeSys.NoticeDataEx>();
        ListView <NoticeSys.NoticeDataEx> listView2 = new ListView <NoticeSys.NoticeDataEx>();

        for (int j = 0; j < datalist.Count; j++)
        {
            NoticeSys.NoticeDataEx noticeDataEx = datalist[j];
            if (noticeDataEx.playMode == NoticeSys.NoticePlayMode.Always)
            {
                string empty = string.Empty;
                string text  = "0";
                if (this.IsShowTimes(noticeDataEx.apolloNoticeData.MsgID, noticeDataEx.maxShowCount, out empty, out text))
                {
                    listView.Add(noticeDataEx);
                }
            }
            else if (noticeDataEx.playMode == NoticeSys.NoticePlayMode.Random)
            {
                string empty2 = string.Empty;
                string text2  = "0";
                if (this.IsShowTimes(noticeDataEx.apolloNoticeData.MsgID, noticeDataEx.maxShowCount, out empty2, out text2))
                {
                    listView2.Add(noticeDataEx);
                }
            }
        }
        int count2 = listView.Count;
        int count3 = listView2.Count;

        if (count2 <= 3)
        {
            for (int k = 0; k < count2; k++)
            {
                NoticeSys.NoticeDataEx ex2 = listView[k];
                this.SelectDatatoShow(ex2);
            }
            int num = 3 - count2;
            if (num > 0)
            {
                if (count3 <= num)
                {
                    for (int l = 0; l < count3; l++)
                    {
                        NoticeSys.NoticeDataEx ex3 = listView2[l];
                        this.SelectDatatoShow(ex3);
                    }
                }
                else
                {
                    List <int> list   = new List <int>(num);
                    Random     random = new Random();
                    while (list.get_Count() < num)
                    {
                        int num2 = random.Next(0, count3);
                        if (!list.Contains(num2))
                        {
                            list.Add(num2);
                        }
                    }
                    for (int m = 0; m < list.get_Count(); m++)
                    {
                        int num3 = list.get_Item(m);
                        if (num3 < count3)
                        {
                            NoticeSys.NoticeDataEx ex4 = listView2[num3];
                            this.SelectDatatoShow(ex4);
                        }
                    }
                }
            }
        }
        else
        {
            for (int n = 0; n < 3; n++)
            {
                if (n < count2)
                {
                    NoticeSys.NoticeDataEx ex5 = listView[n];
                    this.SelectDatatoShow(ex5);
                }
            }
        }
    }