private void Commit()
        {
            _logger.Trace(() => "Committing (" + _persistenceTransactionId + ").");
            var exceptions = new List <Exception>();

            Try(
                BeforeClose,
                () => BeforeClose = null,
                exceptions);

            Try(
                !exceptions.Any() ? (Action)CommitTransaction : (Action)RollbackTransaction,
                () => _transaction = null,
                exceptions);

            Try(
                CloseConnection,
                () => _connection = null,
                exceptions);

            if (exceptions.Any())
            {
                ExceptionsUtility.Rethrow(exceptions.First());
            }

            AfterClose?.Invoke();
            AfterClose = null;
        }
Пример #2
0
 /// <summary>
 /// Handles the after close callback.
 /// </summary>
 /// <param name="args"></param>
 /// <returns></returns>
 protected async Task AfterCloseHandler(MouseEventArgs args)
 {
     if (AfterClose.HasDelegate)
     {
         await AfterClose.InvokeAsync(args);
     }
 }
Пример #3
0
        string GenerateCloseModalScript(AfterClose action, string url)
        {
            switch (action)
            {
            case AfterClose.RefreshParent: return("parent.CloseModal(true);");

            case AfterClose.RefreshParentFully: return("window.parent.location = window.parent.location;");

            case AfterClose.RedirectTo: return("parent.OpenBrowserWindow(\"{0}\",'_parent');".FormatWith(url));

            default: return("parent.CloseModal(false);");
            }
        }
Пример #4
0
        /// <summary>
        /// Handles the close callback.
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        protected async Task OnCloseHandler(MouseEventArgs args)
        {
            if (OnClose.HasDelegate)
            {
                await OnClose.InvokeAsync(args);
            }

            await PlayMotion();

            if (AfterClose.HasDelegate)
            {
                await AfterClose.InvokeAsync(args);
            }
        }
Пример #5
0
        internal void Close()
        {
            var args = new EventArgs();

            try
            {
                Closing?.Invoke(this, args);
            }
            // ReSharper disable once EmptyGeneralCatchClause
            catch
            {
            }
            AfterClose?.Invoke(this, args);
        }
Пример #6
0
        /// <summary>
        /// Closes the current modal window.
        /// </summary>
        public virtual void CloseModal(AfterClose action = AfterClose.DoNothing, string url = "")
        {
            var script = GenerateCloseModalScript(action, url);

            if (IsFromUpdatePanel() || Database.AnyOpenTransaction()) // || Request.Browser.Browser == "Chrome"
            {
                // Inside update panel:
                ScriptManager.RegisterStartupScript(Page, GetType(), "Close Modal" + Guid.NewGuid(), script, addScriptTags: true);
            }
            else
            {
                Response.Clear();
                Response.Write(@"<html>
                                    <body>
                                        <script type='text/javascript'>
                                            {0}
                                        </script>
                                    </body>
                                </html>".FormatWith(script));
                Response.End();
            }
        }
Пример #7
0
 private void OnAfterClose(object sender, NavigateEventArgs e)
 {
     AfterClose?.Invoke(sender, e);
 }
Пример #8
0
 /// <summary>
 /// Closes the current modal window.
 /// </summary>
 public void CloseModal(AfterClose action) => CloseModal(action, string.Empty);
Пример #9
0
 /// <summary>
 /// Closes the current modal window.
 /// </summary>
 public void CloseModal(AfterClose action) => Page.CloseModal(action);
Пример #10
0
 /// <summary>
 /// Closes the current modal window.
 /// </summary>
 public void CloseModal(AfterClose action = AfterClose.DoNothing, string url = "")
 {
     Page.CloseModal(action, url);
 }
Пример #11
0
 protected virtual void OnAfterClose(object sender, NavigateEventArgs e)
 {
     AfterClose?.Invoke(sender, e);
 }
Пример #12
0
 protected void DoAfterClose()
 {
     State = DatabaseState.Closed;
     AfterClose?.Invoke(this, new EventArgs());
 }
Пример #13
0
 public void FinalStandaloneOpen()
 {
     this.Show();
     owner.Hide();
     afterCloseAction = CloseOwner;
 }
Пример #14
0
 public void StandaloneOpen()
 {
     this.Show();
     owner.Hide();
     afterCloseAction = ReopenOwner;
 }
Пример #15
0
 public FormNavegable(FormNavegable owner, AfterClose afterCloseAction)
     : this(owner)
 {
     this.afterCloseAction = afterCloseAction;
 }
Пример #16
0
 public FormNavegable()
 {
     this.owner            = null;
     this.afterCloseAction = DoNothing;
     this.FormClosing     += CloseNavegable;
 }