예제 #1
0
        /// <summary>
        /// Save document safely. "Safe" in the sense that all exceptions are caught (and reported via OnSaveException).
        /// The implementer of IDocumentClient is responsible for ensuring that existing data is not lost
        /// if the save fails.</summary>
        /// <param name="document">Document to save</param>
        /// <param name="kind">Kind of document event associated with save</param>
        /// <returns>True iff document is saved safely</returns>
        protected bool SafeSave(IDocument document, DocumentEventType kind)
        {
            IsSaving = true;

            bool success = false;

            try
            {
                if (OnDocumentSaving(document))
                {
                    DocumentSaving.Raise(this, new DocumentEventArgs(document, kind));

                    IDocumentClient client = GetClient(document);
                    client.Save(document, document.Uri);

                    success = OnDocumentSaved(document);

                    if (success)
                    {
                        document.Dirty = false;
                        m_newDocumentPaths.Remove(document.Uri.LocalPath);
                        DocumentSaved.Raise(this, new DocumentEventArgs(document, kind));
                    }
                }
            }
            catch (Exception ex)
            {
                OnSaveException(ex);
            }

            IsSaving = false;

            return(success);
        }
예제 #2
0
 public DocumentEventArgs(Document document, DocumentEventType type, DPos s, int len, string value)
 {
     this.document = document;
     this.type     = type;
     this.s        = s;
     this.len      = len;
     this.value    = value;
 }
예제 #3
0
        /// <summary>
        /// Save document safely. "Safe" in the sense that all exceptions are caught (and reported via OnSaveException).
        /// The implementer of IDocumentClient is responsible for ensuring that existing data is not lost
        /// if the save fails.</summary>
        /// <param name="document">Document to save</param>
        /// <param name="kind">Kind of document event associated with save</param>
        /// <returns>True iff document is saved safely</returns>
        protected bool SafeSave(IDocument document, DocumentEventType kind)
        {
            IsSaving = true;

            bool success = false;
            try
            {
                if (OnDocumentSaving(document))
                {
                    DocumentSaving.Raise(this, new DocumentEventArgs(document, kind));

                    IDocumentClient client = GetClient(document);
                    client.Save(document, document.Uri);

                    success = OnDocumentSaved(document);

                    if (success)
                    {
                        document.Dirty = false;
                        m_newDocumentPaths.Remove(document.Uri.LocalPath);
                        DocumentSaved.Raise(this, new DocumentEventArgs(document, kind));
                    }
                }
            }
            catch (Exception ex)
            {
                OnSaveException(ex);
            }

            IsSaving = false;

            return success;
        }
예제 #4
0
 /// <summary>
 /// Constructor</summary>
 /// <param name="document">Document</param>
 /// <param name="kind">Type of document event</param>
 public DocumentEventArgs(IDocument document, DocumentEventType kind)
 {
     Document = document;
     Kind = kind;
 }
예제 #5
0
 /// <summary>
 /// Constructor</summary>
 /// <param name="document">Document</param>
 /// <param name="kind">Type of document event</param>
 public DocumentEventArgs(IDocument document, DocumentEventType kind)
 {
     Document = document;
     Kind     = kind;
 }