示例#1
0
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="document">源域对象。</param>
        public GetDocument(Models.Domains.Entities.Document document)
        {
            this.DocumentId = document.DocumentId;
            //this.ParentDocumentId = document.ParentDocumentId;

            //this.Title = document.Title;
            //this.NodeName = document.NodeName;
            //this.Priority = document.Priority;
            //this.UpdateTimeForHTTPGet = document.UpdateTimeForHTTPGet;
            this.IsChecked              = document.IsChecked;
            this.IsNoted                = document.IsNoted;
            this.IsGetAllChildren       = document.IsGetAllChildren;
            this.IsGetAllChapters       = document.IsGetAllChapters;
            this.IsParentGetAllChildren = (document.ParentDocument != null) ? document.ParentDocument.IsGetAllChildren : false;
            //this.Url = document.Url;
            //this.DocumentTime = document.DocumentTime;
            //this.SourceTextMainContain = document.SourceTextMainContain;
            //this.SourceTextMainContainBackup = document.SourceTextMainContainBackup;
            //this.SourceTextHashCode = document.SourceTextHashCode;
            //this.Remarks = document.Remarks;
            //this.UpdateTime = document.UpdateTime;
            this.TotalMinutesToRead = document.TotalMinutesToRead;
            this.IsBookmarked       = document.IsBookmarked;
            this.IsBook             = document.IsBook;
            this.IsAbstract         = document.IsAbstract;
            this.IsMain             = document.IsMain;
            this.IsFinished         = document.IsFinished;
        }
示例#2
0
        public Item(Models.Domains.Entities.Document target)
        {
            this.DocumentId = target.DocumentId;

            this.NodeName = target.NodeName;
            this.Path     = target.Path;
        }
 /// <summary>
 /// 获取域对象。
 /// </summary>
 /// <param name="document">源域对象。将被修改。</param>
 public void GetReturn(Models.Domains.Entities.Document document)
 {
     document.Title         = this.Title;
     document.NodeName      = this.NodeName;
     document.Priority      = this.Priority;
     document.Url           = this.Url;
     document.DocumentTime  = this.DocumentTime;
     document.Remarks       = this.Remarks;
     document.MinutesToRead = this.MinutesToRead;
 }
示例#4
0
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="document">域对象。</param>
        /// <remarks>进行字段赋值。</remarks>
        public ItemChildDocument(Models.Domains.Entities.Document document)
        {
            this.DocumentId = document.DocumentId;

            this.NodeName = document.NodeName;
            this.Priority = document.Priority;
            //this.IsChecked = document.IsChecked;
            //this.IsNoted = document.IsNoted;
            //this.IsGetAllChildren = document.IsGetAllChildren;
            //this.IsHasRemarks = !string.IsNullOrEmpty(document.Remarks);
            this.IsFinished         = document.IsFinished;
            this.TotalMinutesToRead = document.TotalMinutesToRead;
        }
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="document">域对象。</param>
        public Edit(Models.Domains.Entities.Document document)
        {
            this.DocumentId       = document.DocumentId;
            this.ParentDocumentId = document.ParentDocumentId;

            this.Title         = document.Title;
            this.NodeName      = document.NodeName;
            this.Priority      = document.Priority;
            this.Url           = document.Url;
            this.DocumentTime  = document.DocumentTime;
            this.Remarks       = document.Remarks;
            this.MinutesToRead = document.MinutesToRead;
        }
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="document">当前文档。</param>
        /// <remarks>初始化时进行文档链处理。</remarks>
        public BreadField(Models.Domains.Entities.Document document, bool activeCurrentNode)
        {
            this.Current           = document;
            this.ActiveCurrentNode = activeCurrentNode;

            this.List = new List <Domains.Entities.Document>();
            var current = document.ParentDocument;

            while (current != null)
            {
                this.List.Add(current);
                current = current.ParentDocument;
            }
            this.List.Reverse();
        }
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="document">域对象。</param>
        public Item(Models.Domains.Entities.Document document)
        {
            this.DocumentId = document.DocumentId;
            //this.ParentDocumentId = document.ParentDocumentId;

            this.NodeName  = document.NodeName;
            this.Priority  = document.Priority;
            this.IsChecked = document.IsChecked;
            //this.IsNoted = document.IsNoted;
            this.IsGetAllChildren = document.IsGetAllChildren;
            this.IsHasRemarks     = !string.IsNullOrEmpty(document.Remarks);
            //this.TotalMinutesToRead = document.TotalMinutesToRead;
            this.CountChildren           = document.ChildDocuments.Count();
            this.CountChildrenUnFinished = document.ChildDocuments.Where(c => !c.IsFinished).Count();
        }
示例#8
0
        private void Fill(Models.Domains.Entities.Document target, int layer)
        {
            foreach (var item in target.ChildDocuments.OrderBy(c => c.Priority))
            {
                string preSpace = "";
                for (var i = 0; i < layer; i++)
                {
                    preSpace += "   ";
                }

                var newItem = new Item(item.DocumentId, preSpace, item.NodeName, item.IsFinished);
                this.List.Add(newItem);

                this.Fill(item, layer + 1);
            }
        }
示例#9
0
        public ValidateResult Save()
        {
            var target = new Models.Domains.Entities.Document
            {
                DocumentId = Guid.NewGuid(),

                ParentDocumentId = this.ParentDocumentId,

                Title    = this.Title,
                NodeName = this.Title,

                Priority             = this.Priority,
                UpdateTimeForHTTPGet = DateTime.Now,
                IsChecked            = this.IsChecked,

                Url     = this.Url,
                Remarks = this.Remarks,
                IsBook  = true,
                ISBN    = this.ISBN,

                IsAbstract = this.IsBookshelf || this.IsChapterMain,
                IsMain     = this.IsBookRoot || this.IsChapterMain,

                UpdateTime = DateTime.Now
            };

            var db = new Models.Domains.Entities.DMsDbContext();

            lock (Atom.GetInstance())
            {
                if (string.IsNullOrWhiteSpace(this.Title))
                {
                    return(new ValidateResult(false, "Title", "Empty"));
                }
                if (this.Priority < 0)
                {
                    return(new ValidateResult(false, "Priority", "Less Than 0"));
                }

                db.Documents.Add(target);
                db.SaveChanges();
            }

            this.DocumentId = target.DocumentId;

            return(new ValidateResult(true, null));
        }
示例#10
0
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="target">源域对象。</param>
        public Details(Models.Domains.Entities.Document target)
        {
            var db = new Domains.Entities.DMsDbContext();

            this.DocumentId       = target.DocumentId;
            this.ParentDocumentId = target.ParentDocumentId;
            if (this.ParentDocumentId != null)
            {
                this.PreSilbingDocumentId = target.ParentDocument.ChildDocuments.Where(c => c.Priority < target.Priority).OrderBy(c => c.Priority).LastOrDefault()?.DocumentId;
            }
            else
            {
                this.PreSilbingDocumentId = db.Documents.Where(c => c.ParentDocumentId == null && c.Priority < target.Priority).OrderBy(c => c.Priority).ToList().LastOrDefault()?.DocumentId;
            }
            if (this.ParentDocumentId != null)
            {
                this.PostSilbingDocumentId = target.ParentDocument?.ChildDocuments.OrderBy(c => c.Priority).FirstOrDefault(c => c.Priority > target.Priority)?.DocumentId;
            }
            else
            {
                this.PostSilbingDocumentId = db.Documents.Where(c => c.ParentDocumentId == null && c.Priority > target.Priority).OrderBy(c => c.Priority).FirstOrDefault()?.DocumentId;
            }

            this.IsFinished = target.IsFinished;

            this.Title     = target.Title;
            this.NodeName  = target.NodeName;
            this.Priority  = target.Priority;
            this.IsChecked = target.IsChecked;
            //this.IsNoted = target.IsNoted;
            this.IsGetAllChildren = target.IsGetAllChildren;
            this.IsGetAllChapters = target.IsGetAllChapters;
            this.Url                = target.Url;
            this.DocumentTime       = target.DocumentTime;
            this.Remarks            = target.Remarks;
            this.MinutesToRead      = target.MinutesToRead;
            this.TotalMinutesToRead = target.TotalMinutesToRead;
            this.IsBookmarked       = target.IsBookmarked;
            this.IsBook             = target.IsBook;
            this.IsAbstract         = target.IsAbstract;
            this.IsMain             = target.IsMain;

            this.ListChildDocuments = target.ChildDocuments.OrderBy(c => c.Priority).ThenBy(c => c.DocumentId).Select(c => new ItemChildDocument(c)).ToList();

            this.ListChapters = target.Chapters.OrderBy(c => c.Priority).ThenBy(c => c.ChapterId).Select(c => new ItemChapter(c)).ToList();
        }
        /// <summary>
        /// 获取域对象。
        /// </summary>
        /// <returns>域对象。</returns>
        public Models.Domains.Entities.Document GetReturn()
        {
            var target = new Models.Domains.Entities.Document();

            target.DocumentId       = Guid.NewGuid();
            target.ParentDocumentId = this.ParentDocumentId;

            target.Title         = this.Title;
            target.NodeName      = this.NodeName;
            target.Priority      = this.Priority;
            target.Url           = this.Url;
            target.DocumentTime  = this.DocumentTime;
            target.MinutesToRead = this.MinutesToRead;

            target.UpdateTimeForHTTPGet = new DateTime(1900, 1, 1);

            target.UpdateTime = DateTime.Now;

            return(target);
        }
示例#12
0
 public Directory(Models.Domains.Entities.Document target)
 {
     this.Create(target.DocumentId);
 }