public static async Task <ReturnedSaveFuncInfo> BackUpStartAsync(IWin32Window owner, string connectionString, ENSource source, EnBackUpType type, string path = "")
        {
            var ret = new ReturnedSaveFuncInfo();

            try
            {
                if (path == "")
                {
                    var dlg = new SaveFileDialog {
                        Title = @"پشتیبان گیری اطلاعات آراد"
                    };
                    var file = Path.GetFileName(System.Reflection.Assembly.GetEntryAssembly()?.Location)
                               ?.Replace(".exe", "__");
                    var d = Calendar.MiladiToShamsi(DateTime.Now).Replace("/", "_");
                    d           += "__" + DateTime.Now.Hour + " - " + DateTime.Now.Minute;
                    file        += d;
                    file         = file.Replace(" ", "");
                    dlg.FileName = file;
                    dlg.Filter   = "*.NPZ2|*.NPZ2";
                    if (dlg.ShowDialog(owner) != DialogResult.OK)
                    {
                        ret.AddReturnedValue(ReturnedState.Warning, "لغو  توسط کاربر. عدم انتخاب آدرس ذخیره سازی.");
                        return(ret);
                    }
                    path = dlg.FileName;
                }
                ret.AddReturnedValue(await DatabaseAction.BackupDbAsync(connectionString, source, type, path));
            }
            catch (ThreadAbortException ex) { ret.AddReturnedValue(ex); }
            catch (OperationCanceledException ex) { ret.AddReturnedValue(ex); }
            catch (Exception ex)
            {
                WebErrorLog.ErrorInstence.StartErrorLog(ex);
                Finish_Event = true;
                ret.AddReturnedValue(ex);
            }
            return(ret);
        }