예제 #1
0
        /// <summary>
        /// Opens the specified document
        /// </summary>
        /// <param name="repo">Documents repository</param>
        /// <param name="path">Path to document to open</param>
        /// <param name="state">State of the document</param>
        /// <returns>Opened document</returns>
        public static IXDocument Open(this IXDocumentRepository repo, string path,
                                      DocumentState_e state = DocumentState_e.Default)
        {
            var doc = repo.PreCreate <IXUnknownDocument>();

            doc.Path  = path;
            doc.State = state;

            repo.Add(doc);

            return(doc.GetSpecific());
        }
예제 #2
0
        private static TDoc CreateAndCommitNewDocument <TDoc>(this IXDocumentRepository repo)
            where TDoc : class, IXDocument
        {
            var doc = repo.PreCreate <TDoc>();

            repo.Add(doc);

            if (doc is IXUnknownDocument)
            {
                doc = (TDoc)(doc as IXUnknownDocument).GetSpecific();
            }

            return(doc);
        }
예제 #3
0
        public static IXDocument Open(this IXDocumentRepository repo, string path,
                                      bool silent   = true, bool viewOnly = false,
                                      bool readOnly = false, bool rapid   = false)
        {
            var doc = repo.PreCreate <IXUnknownDocument>();

            doc.Path     = path;
            doc.Silent   = silent;
            doc.ViewOnly = viewOnly;
            doc.ReadOnly = readOnly;
            doc.Rapid    = rapid;

            repo.Add(doc);

            return(doc.GetSpecific());
        }
예제 #4
0
 /// <summary>
 /// Creates new drawing document
 /// </summary>
 /// <param name="repo">This repository</param>
 /// <returns>New drawing</returns>
 public static IXDrawing NewDrawing(this IXDocumentRepository repo)
 => CreateAndCommitNewDocument <IXDrawing>(repo);
예제 #5
0
 /// <summary>
 /// Creates new assembly document
 /// </summary>
 /// <param name="repo">This repository</param>
 /// <returns>New aseembly</returns>
 public static IXAssembly NewAssembly(this IXDocumentRepository repo)
 => CreateAndCommitNewDocument <IXAssembly>(repo);
예제 #6
0
 /// <summary>
 /// Creates new part document
 /// </summary>
 /// <param name="repo">This repository</param>
 /// <returns>New part</returns>
 public static IXPart NewPart(this IXDocumentRepository repo)
 => CreateAndCommitNewDocument <IXPart>(repo);
예제 #7
0
 /// <summary>
 /// Registers document handler with the default constructor
 /// </summary>
 /// <typeparam name="THandler">Handler type</typeparam>
 /// <param name="repo">Documents repository</param>
 public static void RegisterHandler <THandler>(this IXDocumentRepository repo)
     where THandler : IDocumentHandler, new()
 {
     repo.RegisterHandler <THandler>(() => new THandler());
 }