/// <summary> /// ورودی آدرس فایل خروجی آدرس پوشه ای که باید فشرده سازی شود /// </summary> /// <param name="filePath"></param> /// <returns></returns> public static async Task <ReturnedSaveFuncInfoWithValue <string> > Move2Temp(string filePath, Guid guid, EnBackUpType type) { var ret = new ReturnedSaveFuncInfoWithValue <string>(); try { string tempDIR = TempDirName(); FileInfo tempInfor = new FileInfo(filePath); if (!File.Exists(filePath)) { var msg = $"path not exists : {filePath}"; await DatabaseAction.BackUpLogAsync(guid, type, EnBackUpStatus.Error, filePath, msg); ret.AddReturnedValue(ReturnedState.Error, msg); return(ret); } var retFilePath = Path.Combine(tempDIR, tempInfor.Name); File.Move(filePath, retFilePath); ret.value = tempDIR; await DatabaseAction.BackUpLogAsync(guid, type, EnBackUpStatus.Success, filePath, "انتقال فایل به پوشه Temp انجام شد"); } catch (Exception ex) { await DatabaseAction.BackUpLogAsync(guid, type, EnBackUpStatus.Error, filePath, ex.Message); WebErrorLog.ErrorInstence.StartErrorLog(ex); ret.AddReturnedValue(ex); } return(ret); }
public static async Task <ReturnedSaveFuncInfo> ReStoreStartAsync(IWin32Window owner, 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(owner) != 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); }
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); }
public async Task <ReturnedSaveFuncInfo> CompressFileAsync(string pathForZipDirectory, string zipFilePath, Guid guid, EnBackUpType type) { var ret = new ReturnedSaveFuncInfo(); int line = 0; try { line = 1; zipFilePath = zipFilePath.ToLower(); line = 2; var inf = new FileInfo(zipFilePath); line = 3; zipFilePath = inf.FullName.Replace(inf.Extension, ".npz2"); using (var archive = ArchiveFactory.Create(ArchiveType.GZip)) { line = 48; archive.AddAllFromDirectory(pathForZipDirectory); line = 51; archive.SaveTo(zipFilePath, CompressionType.GZip); } line = 52; line = 53; Directory.Delete(pathForZipDirectory, true); await DatabaseAction.BackUpLogAsync(guid, type, EnBackUpStatus.Success, zipFilePath, "فایل فشره شده ایجاد شد"); } catch (OperationCanceledException ex) { ret.AddReturnedValue(ex); } catch (Exception ex) { await DatabaseAction.BackUpLogAsync(guid, type, EnBackUpStatus.Error, zipFilePath, ex.Message); WebErrorLog.ErrorInstence.StartErrorLog(ex, $"Line:{line}"); ret.AddReturnedValue(ex); } return(ret); }