public FileManager() { var optionsManager = new OptionsManager(AppDomain.CurrentDomain.BaseDirectory); configOptions = optionsManager.GetOptions <EtlOptions>(); }
private static void MovingFile(FileSystemInfo file, EtlOptions options) { byte[] key = {}; string clientDirectory = "", archiveDirectory = "", newFilePath = "", newArchivePath = ""; try { key = Encryption.GenerateKey(16); _logger.Log(key == null ? "Key is null!" : "Key generated"); } catch (Exception e) { var mess = "Troubles with generating key -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { clientDirectory = options.MoveOptions.TargetDirectory + $"/source/{file.LastWriteTime:yyyy-MM-dd}"; _logger.Log("Created client directory"); } catch (Exception e) { var mess = "Cannot create client directory -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { archiveDirectory = options.MoveOptions.ArchiveDirectory; _logger.Log("Created archive directory"); } catch (Exception e) { var mess = "Cannot create archive directory -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { newFilePath = Path.Combine(clientDirectory, $"{Path.GetFileNameWithoutExtension(file.Name)}_{file.CreationTime:yyyy_MM_dd_hh-mm-ss}"); _logger.Log("Create new file path"); } catch (Exception e) { var mess = "Unable to create new path for file -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { newArchivePath = Path.Combine(archiveDirectory, $"{Path.GetFileNameWithoutExtension(file.Name)}_{file.CreationTime:yyyy_MM_dd_hh-mm-ss}"); _logger.Log("Create new file path for archive"); } catch (Exception e) { var mess = "Unable to create new archive path for file -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } CreateUniquePath(ref newFilePath); CreateUniquePath(ref newArchivePath); newFilePath += ".gz"; newArchivePath += ".gz"; using (new FileStream(file.FullName, FileMode.Open)) {} try { File.WriteAllText(file.FullName, Encryption.Encrypt(File.ReadAllText(file.FullName), key)); _logger.Log($"File {file.Name} encrypted"); } catch (Exception e) { var mess = "Encryption failed -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { Directory.CreateDirectory(clientDirectory); _logger.Log("Client directory created"); } catch (Exception e) { var mess = "Client directory cannot create -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { Directory.CreateDirectory(archiveDirectory); _logger.Log("Archive directory created"); } catch (Exception e) { var mess = "Archive directory cannot create -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { Archive.Compress(file.FullName, newFilePath, options.ArchiveOptions.CompressionLevel); _logger.Log($"File {file.Name} compressed"); MoverOptionsToDb.CreateArchiveOption(MoverOptionsToDb.GenerateArchiveId(), options.ArchiveOptions.CompressionLevel.ToString()); } catch (Exception e) { var mess = $"Unable to compress file {file.FullName} -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { Archive.Compress(file.FullName, newArchivePath, options.ArchiveOptions.CompressionLevel); _logger.Log($"File {file.Name} compressed to archive"); } catch (Exception e) { var mess = $"Unable to compress file {file.FullName} -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { Archive.Decompress(newFilePath, Path.ChangeExtension(newFilePath, "txt")); _logger.Log($"File {file.Name} decompressed"); } catch (Exception e) { var mess = $"Unable to decompress file {file.FullName} -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } File.Delete(newFilePath); newFilePath = Path.ChangeExtension(newFilePath, "txt"); var text = ""; try { text = Encryption.Decrypt(File.ReadAllText(newFilePath), key); _logger.Log($"File {file.Name} encrypted!"); } catch (Exception e) { var mess = $"Cannot decrypt file {file.FullName} -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { File.WriteAllText(newFilePath, text); _logger.Log("File written"); } catch (Exception e) { var mess = "File cannot be written -- " + e.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } try { MoverToDb.CreateNote(MoverToDb.GenerateId(), file.CreationTime.ToString(CultureInfo.InvariantCulture), text); _logger.Log($"Create Note in Db from {file.Name}"); } catch (Exception exception) { var mess = "Unable to create Note in Db -– " + exception.Message; _logger.Log(mess); MoverLogsToDb.CreateLog(MoverLogsToDb.GenerateId(), $"{DateTime.Now:hh:mm:ss dd.MM.yyyy}", mess); } }
public FileGeneration(EtlOptions configOptions) { this.configOptions = configOptions; }