public static async Task <ReturnedSaveFuncInfo> BackUpStartAsync(string connectionString, ENSource Source, string path = "", Guid?Guid = null, CancellationToken token = default) { var ret = new ReturnedSaveFuncInfo(); try { token.ThrowIfCancellationRequested(); if (path == "") { token.ThrowIfCancellationRequested(); var dlg = new SaveFileDialog { Title = @"پشتیبان گیری اطلاعات نوین پرداز" }; token.ThrowIfCancellationRequested(); 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; token.ThrowIfCancellationRequested(); dlg.Filter = "*.NPZ2|*.NPZ2"; token.ThrowIfCancellationRequested(); token.ThrowIfCancellationRequested(); if (dlg.ShowDialog() != DialogResult.OK) { ret.AddReturnedValue(ReturnedState.Warning, "لغو توسط کاربر. عدم انتخاب آدرس ذخیره سازی."); return(ret); } path = dlg.FileName; } token.ThrowIfCancellationRequested(); ret.AddReturnedValue(await DatabaseAction.BackupDbAsync(connectionString, Source, path, Guid, token)); } 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); }
public static async Task <ReturnedSaveFuncInfo> ReStoreStartAsync(string connectionString, ENSource Source, string path = "", bool autoBackup = true) { var ret = new ReturnedSaveFuncInfo(); try { if (string.IsNullOrEmpty(path)) { var ofd = new OpenFileDialog { Multiselect = false, Filter = @"Backup Files(*.NPZ;*.NPZ2;*.BAK)|*.NPZ;*.NPZ2;*.BAK", Title = @"فایل حاوی اطلاعات پشتیبانی نرم افزار را انتخاب نمائید" }; if (ofd.ShowDialog() != DialogResult.OK) { ret.AddReturnedValue(ReturnedState.Warning, "بازگردانی اطلاعات توسط کاربر لغو شد. عدم انتخاب آدرس ذخیره سازی فایل."); return(ret); } path = ofd.FileName; } var backUpVersion = GetBackUpVersion(connectionString, path); var dataBaseVersion = GetDataBaseVersion(connectionString); if (backUpVersion > dataBaseVersion) { ret.AddReturnedValue(ReturnedState.Error, $@"{backUpVersion} نسخه فایل پشتیبان" + " \r\n" + $@"{dataBaseVersion} نسخه دیتابیس" + "\r\n" + "بدلیل بالاتر بودن نسخه پشتیبان نسبت به دیتابیس، امکان بازگردانی وجود ندارد"); return(ret); } SqlConnection.ClearAllPools(); ret.AddReturnedValue(await DatabaseAction.ReStoreDbAsync(connectionString, path, autoBackup, Source)); } catch (Exception ex) { WebErrorLog.ErrorInstence.StartErrorLog(ex); ret.AddReturnedValue(ex); } return(ret); }