Beispiel #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["id"] == null)
                Response.Redirect("default.aspx");

            var id = Int32.Parse(Request.QueryString["id"]);
            var elementType = Request.QueryString["type"].ToString();

            using (var db = new SkybraryEntities())
            {
                if (elementType == "paragraph")
                {
                    var paragraph = db.ParagraphSet
                        .Include("Content")
                        .Include("Content.ContentDefinitions")
                        .Include("Content.ContentDefinitions.Definition")
                        .Where(p => p.Id == id).First();

                    htmlContainer.InnerHtml = paragraph.ToHTML();
                }
                else if (elementType == "chapter")
                {
                    var chapter = db.ChapterSet
                        .Include("Content")
                        .Include("Content.ContentDefinitions")
                        .Include("Content.ContentDefinitions.Definition")
                        .Where(c => c.Id == id).First();

                    htmlContainer.InnerHtml = chapter.ToHTML();
                }
            }
        }
Beispiel #2
0
        public void ProcessRequest(HttpContext context)
        {
            int id = 0;
            if (context.Request.QueryString["id"] != null)
            {
                id = Int32.Parse(context.Request.QueryString["id"]);
            }
            using (var db = new SkybraryEntities())
            {
                var image = db.ImageSet.Where(i => i.Id == id).FirstOrDefault();

                if (image != null)
                {
                    context.Response.ContentType = "image/jpeg";
                    context.Response.OutputStream.Write(image.Data, 0, image.Data.Length);
                }
            }
        }
Beispiel #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int id = Int32.Parse(Request.QueryString["id"]);
            string type = Request.QueryString["type"];

            using (var db = new SkybraryEntities())
            {
                if (type == "paragraph")
                {
                    var paragraph = db.ParagraphSet.Where(p => p.Id == id).FirstOrDefault();

                    paragraph.ChapterReference.Load();
                    paragraph.Chapter.DocumentReference.Load();

                    var document = paragraph.Chapter.Document;

                    var chapters =
                        (from c in db.ChapterSet.Include("Paragraphs")
                         orderby c.OrderInDocument
                         where c.Document.Id == document.Id
                         select c).ToList();

                    BuildDocumentTreeView(chapters, document.Title, paragraph.Id, type);
                }
                else if (type == "chapter")
                {
                    var chapter = db.ChapterSet.Where(c => c.Id == id).FirstOrDefault();
                    chapter.DocumentReference.Load();
                    var document = chapter.Document;

                    var chapters =
                        (from c in db.ChapterSet.Include("Paragraphs")
                         orderby c.OrderInDocument
                         where c.Document.Id == document.Id
                         select c).ToList();

                    BuildDocumentTreeView(chapters, document.Title, chapter.Id, type);
                }
            }
        }
Beispiel #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["id"] == null)
                Response.Redirect("documents.aspx");

            var documentId = Int32.Parse(Request.QueryString["id"]);
            var sb = new StringBuilder();
            using (var db = new SkybraryEntities())
            {
                var chapters =
                    (from c in db.ChapterSet.Include("Paragraphs")
                     where c.Document.Id == documentId
                     select c).ToList();
                sb.Append("<ul>");
                foreach (var chapter in chapters)
                {
                    sb.Append("<li>");
                    sb.Append("<a href='view.aspx?type=chapter&id=" + chapter.Id + "'>" + chapter.Title + "</a>");
                    if (chapter.Paragraphs.Count > 0)
                    {
                        sb.Append("<ul>");
                        foreach (var paragraph in chapter.Paragraphs.OrderBy(p => p.OrderInChapter))
                        {
                            sb.Append("<li>");
                            sb.Append("<a href='view.aspx?type=paragraph&id=" + paragraph.Id + "'>" + paragraph.Number + " " + paragraph.Title + "</a>");

                            sb.Append("</li>");
                        }
                        sb.Append("</ul>");
                    }
                    sb.Append("</li>");
                }
                sb.Append("</ul>");
            }

            htmlContainer.InnerHtml = sb.ToString();
        }
Beispiel #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (var db = new SkybraryEntities())
            {

                var gd = (from doc in db.DocumentSet
                          group doc by doc.GroupName
                          into gc
                              select new
                                         {
                                             Documents = (from g in gc select g).OrderBy(g => g.OrderInGroup),
                                             Count = gc.Count(),
                                             Title = gc.Key,
                                             GroupOrder = (from g in gc select g.OrderInGroup).Min()
                                        });

                var list = gd.ToList().OrderBy(d => d.GroupOrder);

                StringBuilder sb = new StringBuilder();

                sb.Append("<ul>");
                foreach (var documentsGroup in list)
                {
                    sb.Append("<li>");
                    sb.Append(documentsGroup.Title);
                    sb.Append("<ul>");

                    var gds = from g in documentsGroup.Documents
                              group g by g.ShortName
                              into gc
                                  select new
                                             {
                                                 SubDocuments = gc,
                                                 Title = gc.Key,
                                                 Count = gc.Count(),
                                                 Id = gc.Count() == 1 ? gc.Where(d => d.Title == gc.Key).Select(i => i.Id).Single() : -1
                                             };
                    foreach (var subdocument in gds)
                    {
                        sb.Append("<li>");
                        if (subdocument.Id != -1)
                        {

                            int id = subdocument.Id;

                            sb.Append(
                                string.Format(
                                    "{0} {1} {2} {3}", subdocument.Title, ViewLink(id), IndexLink(id), DeleteLink(id)));
                        }
                        else
                            sb.Append(subdocument.Title);
                        if (subdocument.Count > 1)
                        {
                            sb.Append("<ul>");
                            foreach (var sd in subdocument.SubDocuments)
                            {
                                int id = sd.Id;
                                sb.Append("<li>");
                                sb.Append(
                                string.Format(
                                    "{0} {1} {2} {3}", sd.Title, ViewLink(id), IndexLink(id), DeleteLink(id)));
                                sb.Append("</li>");
                            }
                            sb.Append("</ul>");

                        }
                        sb.Append("</li>");
                    }

                    sb.Append("</ul>");
                    sb.Append("</li>");
                }
                sb.Append("</ul>");

                htmlContainer.InnerHtml = sb.ToString();

            }
        }
Beispiel #6
0
        public object GetTextElementContent(int id, string type)
        {
            string content = "";

            using (var db = new SkybraryEntities())
            {
                if (type == "paragraph")
                {
                    var paragraph = db.ParagraphSet
                        .Include("Chapter")
                        .Include("Content")
                        .Include("Content.ContentDefinitions")
                        .Include("Content.ContentDefinitions.Definition")
                        .Include("Content.Notes")
                        .Include("Content.Tables")
                        .Include("Content.Tables.TableCells")
                        .Include("Content.Images")
                        .Where(p => p.Id == id).First();

                    content = "<p><b>" + paragraph.Chapter.Title + "</b></p>" + paragraph.ToHTML();

                    var chapter = paragraph.Chapter;
                    chapter.Paragraphs.Load();

                    int nextId = 0;
                    int prevId = 0;
                    string nextType = "";
                    string prevType = "";

                    var nextParagraph = (from p in chapter.Paragraphs
                                         where p.OrderInChapter > paragraph.OrderInChapter
                                         orderby p.OrderInChapter ascending
                                         select p).FirstOrDefault();
                    var prevParagraph = (from p in chapter.Paragraphs
                                         where p.OrderInChapter < paragraph.OrderInChapter
                                         orderby p.OrderInChapter descending
                                         select p).FirstOrDefault();

                    if (nextParagraph != null)
                    {
                        nextId = nextParagraph.Id;
                        nextType = "paragraph";
                    }
                    else
                    {
                        nextId = paragraph.Id;
                        nextType = "paragraph";
                    }
                    if (prevParagraph != null)
                    {
                        prevId = prevParagraph.Id;
                        prevType = "paragraph";
                    }
                    else
                    {
                        prevId = paragraph.Id;
                        prevType = "paragraph";
                    }

                    content += string.Format(@"
                                    <hr />
                                    <table style='width:100%'>
                                        <tr>
                                            <td align='right'>
                                                <a href='javascript:ShowNext({0}, ""{1}"")'>Previous Paragraph</a> | <a href='javascript:ShowNext({2}, ""{3}"")'>Next Paragraph</a>
                                            </td>
                                        </tr>
                                    </table>", prevId, prevType, nextId, nextType);
                }
                else if (type == "chapter")
                {
                    var chapter = db.ChapterSet
                        .Include("Content")
                        .Include("Content.ContentDefinitions")
                        .Include("Content.ContentDefinitions.Definition")
                        .Include("Content.Notes")
                        .Include("Content.Tables")
                        .Include("Content.Tables.TableCells")
                        .Include("Content.Images")
                        .Where(c => c.Id == id).First();

                    content = chapter.ToHTML();
                }

            }

            return new {NextElement = 1, Content = content};
        }
Beispiel #7
0
        public object GetTextElementForDocument(int id, string type)
        {
            string content = "";

            using (var db = new SkybraryEntities())
            {
                if (type == "paragraph")
                {
                    var paragraph = db.ParagraphSet
                        .Include("Chapter")
                        .Include("Content")
                        .Include("Content.ContentDefinitions")
                        .Include("Content.ContentDefinitions.Definition")
                        .Where(p => p.Id == id).First();

                    content = paragraph.ToHTML();
                }
                else if (type == "chapter")
                {
                    var chapter = db.ChapterSet
                        .Include("Content")
                        .Include("Content.ContentDefinitions")
                        .Include("Content.ContentDefinitions.Definition")
                        .Where(c => c.Id == id).First();

                    content = chapter.ToHTML();
                }

            }

            return new { NextElement = 1, Content = content };
        }
Beispiel #8
0
        private void BuildDocucumentIndex()
        {
            using (var db = new SkybraryEntities())
            {
                var gd = (from document in db.DocumentSet
                          group document by document.GroupName
                          into groupedDocuments
                          select new
                             {
                                 Documents =
                                    (from groupedDocument in groupedDocuments
                                     select groupedDocument).OrderBy(g => g.OrderInGroup),
                                 Count = groupedDocuments.Count(),
                                 Title = groupedDocuments.Key,
                                 GroupOrder =
                                    (from groupedDocument in groupedDocuments
                                     select groupedDocument.OrderInGroup).Min()
                             });

                // grouped documents list
                var list = gd.ToList().OrderBy(d => d.GroupOrder);

                foreach (var documentsGroup in list)
                {
                    RadTreeNode groupNode = new RadTreeNode
                                                {
                                                    Text = documentsGroup.Title,
                                                    Value = documentsGroup.Count.ToString()

                                                };

                    if (documentsGroup.Title == "Convention on International Civil Aviation")
                    {
                        groupNode.Attributes["filter"] = documentsGroup.Documents.FirstOrDefault().Id.ToString();
                        groupNode.ToolTip = documentsGroup.Title;
                        rtvDocumentIndex.Nodes.Add(groupNode);
                    }
                    else
                    {
                        var gds = from groupedDocuments in documentsGroup.Documents
                                  group groupedDocuments by groupedDocuments.ShortName
                                  into gc
                                  select new
                                  {
                                     SubDocuments = gc,
                                     Title = gc.Key,
                                     Count = gc.Count(),
                                     Id = gc.Count() == 1
                                                ?
                                                gc.Where(d => d.Title == gc.Key)
                                                  .Select(i => i.Id)
                                                  .Single()
                                                :
                                                -1
                                    };

                        foreach (var subdocument in gds)
                        {
                            RadTreeNode documentNode = new RadTreeNode
                                                           {
                                                               Text = subdocument.Title,
                                                               Value = subdocument.Id.ToString()
                                                           };

                            if (subdocument.Count > 1)
                            {
                                foreach (var sd in subdocument.SubDocuments)
                                    documentNode.Attributes["filter"] += sd.Id + ";";
                            }
                            else
                                documentNode.Attributes["filter"] = subdocument.Id.ToString();

                            groupNode.Nodes.Add(documentNode);
                            documentNode.ToolTip = subdocument.Title;
                        }

                        rtvDocumentIndex.Nodes.Add(groupNode);
                        groupNode.Expanded = true;
                    }
                }
            }
        }
Beispiel #9
0
        public void Index(int documentId)
        {
            using (var db = new SkybraryEntities())
            {
                var icaoDocument = db.DocumentSet.Where(d => d.Id == documentId).First();

                var chapters =
                    (from c in db.ChapterSet
                         .Include("Content.ContentDefinitions.Definition.Content")
                         .Include("Paragraphs.Content.ContentDefinitions.Definition.Content")
                     where c.Document.Id == documentId
                     select c).ToList();

                foreach (var chapter in chapters)
                {
                    if (chapter.HasContent())
                    {
                        Field titleField = new Field("Title", chapter.Title,
                                                     Field.Store.YES, Field.Index.TOKENIZED,
                                                     Field.TermVector.WITH_POSITIONS_OFFSETS);
                        titleField.SetBoost(1.1F);
                        var doc = new Lucene.Net.Documents.Document();
                        doc.Add(new Field("IcaoId", icaoDocument.Id.ToString(), Field.Store.YES,
                                          Field.Index.UN_TOKENIZED));
                        doc.Add(new Field("DocumentTitle", icaoDocument.Title, Field.Store.YES, Field.Index.NO));
                        doc.Add(new Field("Type", "chapter", Field.Store.YES, Field.Index.NO));
                        doc.Add(new Field("Id", chapter.Id.ToString(), Field.Store.YES, Field.Index.NO));
                        doc.Add(new Field("OrderInDocument", chapter.OrderInDocument.ToString(), Field.Store.YES,
                                          Field.Index.NO));
                        doc.Add(titleField);
                        doc.Add(new Field("Content", chapter.Content.ToSearchIndex(),
                                          Field.Store.YES, Field.Index.TOKENIZED,
                                          Field.TermVector.WITH_POSITIONS_OFFSETS));
                        Writer.AddDocument(doc);

                    }

                    foreach (var paragraph in chapter.Paragraphs)
                    {
                        if (paragraph.HasContent())
                        {
                            Field titleField = new Field("Title", paragraph.Number + " " + paragraph.Title,
                                                         Field.Store.YES,
                                                         Field.Index.TOKENIZED,
                                                         Field.TermVector.WITH_POSITIONS_OFFSETS);
                            titleField.SetBoost(1.1F);
                            var par = new Lucene.Net.Documents.Document();
                            par.Add(new Field("IcaoId", icaoDocument.Id.ToString(), Field.Store.YES,
                                              Field.Index.UN_TOKENIZED));
                            par.Add(new Field("DocumentTitle", icaoDocument.Title, Field.Store.YES, Field.Index.NO));
                            par.Add(new Field("Type", "paragraph", Field.Store.YES, Field.Index.NO));
                            par.Add(new Field("Id", paragraph.Id.ToString(), Field.Store.YES, Field.Index.NO));
                            par.Add(new Field("Chapter", chapter.Title, Field.Store.YES, Field.Index.NO));
                            par.Add(new Field("OrderInChapter", paragraph.OrderInChapter.ToString(), Field.Store.YES,
                                              Field.Index.NO));
                            par.Add(titleField);
                            par.Add(new Field("Content", paragraph.Content.ToSearchIndex(),
                                              Field.Store.YES, Field.Index.TOKENIZED,
                                              Field.TermVector.WITH_POSITIONS_OFFSETS));
                            Writer.AddDocument(par);
                        }
                    }
                }

                Writer.Optimize();
                Writer.Flush();
                Writer.Close();
            }
        }