Example #1
0
        public HighlightModel InsertHighlight(HighlightModel highlight)
        {
            try
            {
                HighlightModel old = null;
                using (var db = new AnnotateWebPageDBEntities())
                {
                    old = GetHighlight(highlight.id);
                }
                if (old == null)
                {
                    // generate new id
                    using (var db = new AnnotateWebPageDBEntities())
                    {
                        //var nextId = db.Highlight.ToList().Max(hg => hg.id) + 1;
                        //highlight.id = nextId;
                        Highlight newHighlight = db.Highlight.Add(new Highlight()
                        {
                            user_id = highlight.user_id, web_page = highlight.web_page, start = highlight.start, end = highlight.end, color = highlight.color
                        });
                        db.SaveChanges();
                        highlight.id = newHighlight.id;
                    }

                    return(highlight);
                }
                else //update
                {
                    Highlight updateHighlight = null;
                    using (var db = new AnnotateWebPageDBEntities())
                    {
                        updateHighlight = db.Highlight.Where(s => s.id == highlight.id).FirstOrDefault <Highlight>();
                    }

                    if (updateHighlight != null)
                    {
                        updateHighlight.user_id  = highlight.user_id;
                        updateHighlight.web_page = highlight.web_page;
                        updateHighlight.start    = highlight.start;
                        updateHighlight.end      = highlight.end;
                        updateHighlight.color    = highlight.color;
                    }

                    using (var db = new AnnotateWebPageDBEntities())
                    {
                        db.Entry(updateHighlight).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                    }
                    return(highlight);
                }
            }
            catch (Exception e)
            {
                return(null);
            }
        }
        public IHttpActionResult Post([FromBody] HighlightModel Highlight)
        {
            //if (Highlight.id == 0) //insert
            //{
            var insertedHighlight = highlightModels.InsertHighlight(Highlight);

            if (insertedHighlight != null)
            {
                return(Created(
                           Url.Link("GetHighlightUrl", new { id = insertedHighlight.id }),
                           insertedHighlight));
            }
            else
            {
                return(BadRequest());
            }
            //}

            //return BadRequest();
        }
        public virtual void GoToElement( HighlightModel.IHighlightableElement element )
        {
            LastDirective = new ScrollingDirective( ActionType.MoveNext, ActionTime.Immediate );

            Walker.Current.EndHighlight( new EndScrollingInfo( Timer.Interval.Ticks, PreviousElement, element ), LastDirective );
            Walker.GoTo( element );
        }
 public virtual void ElementUnregistered( HighlightModel.IHighlightableElement element )
 {
     ResetAutoPause();
     if( Walker.Current == element || Walker.Parents.Contains( element ) )
     {
         GoToElement( this );
     }
 }
 public void GoToElement( HighlightModel.IHighlightableElement element )
 {
     _current.GoToElement( element );
 }
 public void ElementUnregistered( HighlightModel.IHighlightableElement element )
 {
     _current.ElementUnregistered( element );
 }
        public IActionResult Index(string path)
        {
            const string root = @"C:\Users\Michal Piatkowski\Downloads\";

            if (path == null)
            {
                path = root;
            }
            else
            {
                path = Path.Combine(root, path);
            }
            path = path.Replace('\\', '/');

            //var archiveResult = BuildArchiveView(path);
            //if (archiveResult.IsValid)
            //{
            //    if (archiveResult.HasFile)
            //    {
            //        // serve file from inside the zip
            //        string fullName = archiveResult.File.FullName;
            //        var entry = archiveResult.Archive[fullName];
            //        HttpContext.Response.RegisterForDispose(archiveResult.Archive);
            //
            //        if (archiveResult.File.Length <= HIGHLIGHT_SIZE_THRESHOLD &&
            //            HighlightTypeMap.TryGetLanguage(Path.GetExtension(fullName), out var lang))
            //        {
            //            var highlightStream = entry.OpenReader();
            //            HttpContext.Response.RegisterForDispose(highlightStream);
            //
            //            var highlight = new HighlightModel(highlightStream, lang);
            //            return View("HighlightIndex", highlight);
            //        }
            //
            //        string mime = MimeTypeMap.GetMime(fullName);
            //        if (IsTextMime(mime))
            //        {
            //            using (var stream = entry.OpenReader())
            //                mime = UpdateCharset(stream, mime);
            //        }
            //
            //        var mainStream = entry.OpenReader();
            //        HttpContext.Response.RegisterForDispose(mainStream);
            //        return File(mainStream, mime, enableRangeProcessing: false);
            //    }
            //
            //    if(archiveResult.HasModel)
            //        // serve directory from inside the zip
            //        return View(archiveResult.Model);
            //
            //    return NotFound();
            //}

            // serve file
            if (FileIO.Exists(path))
            {
                // try to enter a zip archive
                string zipPath = "testzip.zip"; //root + @"FTB+Presents+Direwolf20+1.12-1.12.2-2.3.0-Server.zip";
                if (ZipFile.IsZipFile(zipPath))
                {
                    var builder     = new ArchiveTreeBuilder();
                    var archive     = ZipFile.Read(zipPath).ToArchive();
                    var archiveView = builder.BuildTree(archive, null); // (p) => Console.WriteLine("Progress: " + Math.Round(p * 100, 1))
                    archive.Dispose();

                    Console.WriteLine(Log(archiveView));
                }

                Stream stream    = FileIO.OpenRead(path);
                string extension = Path.GetExtension(path);

                if (stream.Length <= HIGHLIGHT_SIZE_THRESHOLD &&
                    HighlightTypeMap.TryGetLanguage(extension, out var lang))
                {
                    var highlight = new HighlightModel(stream, lang);
                    return(View("HighlightIndex", highlight));
                }

                string mime = MimeTypeMap.GetMime(extension);
                if (IsTextMime(mime))
                {
                    mime = UpdateCharset(stream, mime);
                }

                stream.Seek(0, SeekOrigin.Begin);
                return(File(stream, mime, enableRangeProcessing: true));
            }

            // serve directory
            var dir = new DirectoryInfo(path);

            if (!dir.Exists)
            {
                return(NotFound());
            }

            var dirModel = BuildDirectoryModel(dir);

            return(View(dirModel));
        }
Example #8
0
        public virtual void GoTo( HighlightModel.IHighlightableElement element )
        {
            if( element == null ) throw new ArgumentNullException( "element" );
            Parents.Clear();

            if( element != Root ) Parents.Push( Root );

            Current = element;
        }