void Logger_OnRecieveErrorLog(object sender, ErrorLogEventArgs e) {

            if ( InvokeRequired ) {
                BeginInvoke((MethodInvoker)delegate { Logger_OnRecieveErrorLog(sender, e); });
                return;
            }

            using ( var errors = new ErrorDialog(e.Exception) ) {
                switch ( errors.ShowDialog() ) {
                    case System.Windows.Forms.DialogResult.Ignore:
                        return;
                    case System.Windows.Forms.DialogResult.Cancel:
                        DialogResult = System.Windows.Forms.DialogResult.Cancel;
                        break;
                    case System.Windows.Forms.DialogResult.Retry:
                        //TODO: Report it 
                        return;
                }
            }

            this.Close();
        }
        void Logger_OnRecieveErrorLog(object sender, ErrorLogEventArgs e)
        {
            if ( InvokeRequired ) {
                BeginInvoke((MethodInvoker)delegate { Logger_OnRecieveErrorLog(sender, e); });
                return;
            }

            txtLog.AppendLog("&4\t------[Error]-----" + Environment.NewLine);
            txtLog.AppendLog("&4\t" + e.Message + Environment.NewLine);
            txtLog.AppendLog(Environment.NewLine);
        }