Пример #1
0
        private void bindPollSection(int sectionId, ContentPoll c)
        {
            set("addLink", to(Add, sectionId));
            set("listLink", to(List, sectionId));
            set("section.Id", sectionId);

            if (c != null)
            {
                set("poll.Title", c.Title);

                set("poll.Question", c.Question);

                // 显示投票选项
                ctx.SetItem("sectionId", sectionId);
                String html = ExtData.GetExtView(c.Id, typeof(ContentPost).FullName, typeof(ContentPoll).FullName, ctx);

                set("poll.Html", html);
            }
            else
            {
                set("poll.Title", alang("exPollNotAdd"));
                set("poll.Question", "");
                set("poll.Html", "");
            }
        }
Пример #2
0
        private Task <byte[]> ReceivePiecesAsync(long metadataSize, int piecesNum)
        {
            Trace.Assert(metadataSize > 0);
            return(Task.Run(() =>
            {
                try
                {
                    int tryed = 0;
                    byte[] metadata = new byte[metadataSize];
                    BitArray flags = new BitArray(piecesNum);
                    for (int i = 0; i < piecesNum && tryed < 10;)
                    {
                        ExtData data = new ExtData();
                        data = ReceiveMessage <ExtData>();
                        if (data.Legal)
                        {
                            if (data.Data.Length > 0 && !flags[data.PieceID])
                            {
                                var index = data.PieceID;
                                flags.Set(index, true);

                                data.Data.CopyTo(metadata, index * PieceLength);
                                i++;
                            }
                            else
                            {
                                Trace.WriteLine(EndPoint, "Received Empty Data");
                                return null;
                            }
                        }
                        else
                        {
                            Thread.Sleep(100);
                            tryed++;
                        }
                    }
                    for (int i = 0; i < flags.Length; i++)
                    {
                        if (!flags[i])
                        {
                            Trace.WriteLine(EndPoint, "Not Received All pieces");
                            return null;
                        }
                    }
                    return metadata;
                }
                catch (System.IO.IOException)
                {
                    Trace.WriteLine(EndPoint, "Socket Closed");
                    return null;
                }
            }));
        }
Пример #3
0
 private String addContentInfo(ForumTopic data, String content)
 {
     return(content + "<div class=\"extDataPanel\">" + ExtData.GetExtView(data.Id, typeof(ForumTopic).FullName, data.TypeName, ctx) + "</div>");
 }