public async Task <ReturnedSaveFuncInfo> ExtractTempDIR(string archiveName) { var ret = new ReturnedSaveFuncInfo(); try { var pathtemp = Zip.TempDirName(); var fileInfo = new FileInfo(archiveName); pathtemp = Path.Combine(pathtemp, fileInfo.Name); pathtemp = Path.ChangeExtension(pathtemp, ".bak"); using (var archive = GZipArchive.Open(archiveName)) { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { entry.WriteToFile(pathtemp, new ExtractionOptions() { ExtractFullPath = true, Overwrite = true }); } } ret.value = pathtemp; } catch (Exception ex) { WebErrorLog.ErrorInstence.StartErrorLog(ex); ret.AddReturnedValue(ex); } return(ret); }
private static float GetBackUpVersion(string connctionString, string backUpFileName) { var ver = (float)0; var line = 0; try { var cn = new SqlConnection(connctionString); line = 1; if (backUpFileName.EndsWith(".NPZ") || backUpFileName.EndsWith(".npz")) { var zp = new Zip(); line = 2; backUpFileName = zp.ExtractTempDIR(backUpFileName); } else if (backUpFileName.EndsWith(".NPZ2") || backUpFileName.EndsWith(".npz2")) { try { line = 3; var pathtemp = Zip.TempDirName(); line = 4; var fileInfo = new FileInfo(backUpFileName); line = 5; pathtemp = Path.Combine(pathtemp, fileInfo.Name); line = 6; pathtemp = Path.ChangeExtension(pathtemp, ".bak"); line = 7; using (var archive = GZipArchive.Open(backUpFileName)) { line = 8; foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { line = 9; entry.WriteToFile(pathtemp, new ExtractionOptions() { ExtractFullPath = true, Overwrite = true }); } } line = 10; backUpFileName = pathtemp; } catch { var zp = new Zip(); line = 2000; backUpFileName = zp.ExtractTempDIR(backUpFileName); } } line = 11; if (string.IsNullOrEmpty(backUpFileName)) { return(ver); } line = 12; var command = @"RESTORE HEADERONLY FROM DISK ='" + backUpFileName + "'"; line = 13; using (var sqlCommand = new SqlCommand(command, cn)) { line = 14; cn.Open(); line = 15; var sqlDataReader = sqlCommand.ExecuteReader(); line = 16; while (sqlDataReader.Read()) { line = 17; Console.WriteLine(); line = 18; var d = $"{sqlDataReader["DatabaseVersion"]}"; line = 19; if (string.IsNullOrEmpty(d)) { continue; } line = 20; switch (d) { case "406": ver = 6; break; case "408": ver = (float)6.5; break; case "515": ver = 7; break; case "539": ver = 2000; break; case "611": ver = 2005; break; case "612": ver = 2005; break; case "655": ver = 2008; break; case "661": ver = 2008; break; case "706": ver = 2012; break; case "782": ver = 2014; break; case "869": ver = 2017; break; case "895": ver = 2019; break; case "852": ver = 2016; break; default: ver = 0; break; } line = 21; return(ver); } } } catch (Exception ex) { WebErrorLog.ErrorInstence.StartErrorLog(ex, $"Error In Line{line} With ConnectionString:{connctionString} AND BackUpFileName:{backUpFileName}"); ver = 0; } return(ver); }