Esempio n. 1
0
        internal List <IForm> GetForms(IDatabase db)
        {
            string       defaultForm = db.DxlReader.GetDefaultForm();
            List <IForm> forms       = new List <IForm>();

            Domino.NotesDatabase ndb        = db.InnerObject as  Domino.NotesDatabase;
            object[]             notesForms = (object[])ndb.Forms;
            int formNo = 0;

            foreach (Domino.NotesForm nsform in notesForms)
            {
                if (nsform.IsSubForm)
                {
                    continue;
                }
                formNo++;
                Form form = new Form(formNo, nsform, db);
                if (form.Name.Equals(defaultForm))
                {
                    form.IsDefault = true;
                    form.IsTarget  = true;
                }
                forms.Add(form);
            }
            forms.Sort(CompaireForm);
            return(forms);
        }
Esempio n. 2
0
        /// <summary>
        /// データベースのアイコンを出力する
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public Image ExportIcon(IDatabase db)
        {
            EnsureSession();
            string xml = "";

            Domino.NotesDXLExporter exporter = this._session.CreateDXLExporter();
            exporter.OutputDOCTYPE            = false;
            exporter.ConvertNotesbitmapsToGIF = true;
            Domino.NotesDatabase ndb = db.InnerObject as Domino.NotesDatabase;
            if (!string.IsNullOrEmpty(ndb.Server))
            {
                //Server中のファイルをコピーする
                ndb = this.CloneDatabase(ndb);
            }
            try
            {
                Domino.NotesDocument iconDoc = ndb.GetDocumentByID("FFFF0010");
                xml = exporter.Export(iconDoc);
            }
            catch (Exception)
            {
                Domino.NotesNoteCollection notes = ndb.CreateNoteCollection(false);
                notes.SelectIcon = true;
                notes.BuildCollection();
                xml = exporter.Export(notes);
            }
            byte[]      rawData = GetRawIconData(xml);
            IconCreator creator = new IconCreator();
            Image       rawIcon = creator.getRawIconImage(rawData);

            return(rawIcon);
        }
Esempio n. 3
0
        private Domino.NotesDatabase CloneDatabase(Domino.NotesDatabase srcDb)
        {
            EnsureSession();
            string tempDbPath = System.IO.Path.GetTempFileName();
            string newDbName  = System.IO.Path.ChangeExtension(tempDbPath, ".nsf");

            Domino.NotesDatabase dstDB = srcDb.CreateCopy("", newDbName);
            return(dstDB);
        }
Esempio n. 4
0
 public IDatabase GetDataBase(string fileName, string server)
 {
     EnsureSession();
     Domino.NotesDatabase ndb = this._session.GetDatabase(server, fileName, false);
     if (ndb == null)
     {
         return(null);
     }
     return(new Database(this, ndb));
 }
Esempio n. 5
0
        internal List <IView> GetViews(IDatabase db)
        {
            Domino.NotesDatabase ndb   = db.InnerObject as Domino.NotesDatabase;
            List <IView>         views = new List <IView>();

            object[] notesViews = (object[])ndb.Views;
            foreach (Domino.NotesView view in notesViews)
            {
                views.Add(new View(view, db));
            }
            views.Sort(CompaireView);
            return(views);
        }
Esempio n. 6
0
 internal Database(NotesAccessor accessor, Domino.NotesDatabase notesDb)
 {
     if (!notesDb.IsOpen)
     {
         notesDb.Open();
     }
     this._accessor   = accessor;
     this._notesDb    = notesDb;
     this._title      = notesDb.Title;
     this._server     = notesDb.Server;
     this._sourceType = (NotesDbType)(int)notesDb.type;
     this._targetType = MappingInfo.GetTagetDbType(this._sourceType);
     this._fileName   = notesDb.FileName;
     this._notesUrl   = notesDb.NotesURL;
     this._replicaId  = notesDb.ReplicaID;
     this._sourcePath = notesDb.FilePath;
 }
Esempio n. 7
0
        /// <summary>
        /// DXLへ出力
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public string ExportDxl(IDatabase db, ExportMode mode)
        {
            EnsureSession();
            bool isColned = false;

            Domino.NotesDXLExporter exporter = this._session.CreateDXLExporter();
            exporter.ForceNoteFormat          = false;
            exporter.OutputDOCTYPE            = false;
            exporter.ConvertNotesbitmapsToGIF = true;
            Domino.NotesDatabase ndb = db.InnerObject as Domino.NotesDatabase;
            if (!string.IsNullOrEmpty(ndb.Server))
            {
                //Server中のファイルをコピーする
                ndb      = this.CloneDatabase(ndb);
                isColned = true;
            }
            try
            {
                Domino.NotesNoteCollection coll = ndb.CreateNoteCollection(false);
                switch (mode)
                {
                case ExportMode.Forms:
                    coll.SelectSharedFields = true;
                    coll.SelectForms        = true;
                    coll.SelectSubforms     = true;
                    break;

                case ExportMode.Icon:
                    coll.SelectIcon = true;
                    break;

                case ExportMode.Views:
                    coll.SelectViews = true;
                    break;

                case ExportMode.Resources:
                    coll.SelectImageResources = true;
                    break;

                case ExportMode.All:
                    coll.SelectAllDesignElements(true);
                    break;

                default:
                    break;
                }
                coll.BuildCollection();
                string xml = exporter.Export(coll);
                return(xml);
            }
            finally
            {
                if (isColned && ndb != null)
                {
                    try
                    {
                        string tempfile = ndb.FilePath;
                        if (System.IO.File.Exists(tempfile))
                        {
                            System.IO.File.Delete(tempfile);
                        }
                    }
                    catch
                    {
                        //一時ファイル削除できない
                    }
                }
            }
        }