/// <summary> /// Производит операцию над файлом, согласно назначению класса. /// </summary> /// <param name="fileTransferInfo">Информация о классе.</param> /// <returns>Обработанный класс.</returns> protected override FileTransferInfo DetailedProc(FileTransferInfo fileTransferInfo) { try { string directory = _settings[ArgsKeyList.BackUpPath]; if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } var oldFile = $"{_settings[ArgsKeyList.StorePath]}\\{fileTransferInfo.Id}"; var newFile = $"{directory}\\{fileTransferInfo.Id};{fileTransferInfo.PpvkName}.{fileTransferInfo.Ext}"; if (File.Exists(oldFile)) { File.Copy(oldFile, newFile); } else { File.WriteAllBytes(newFile, fileTransferInfo.Data); } return(fileTransferInfo); } catch (Exception e) { _console.AddException(e); return(null); } }
public PpvkFileInfo(FileTransferInfo fileTransferInfo) { Id = fileTransferInfo.Id; PpvkName = fileTransferInfo.PpvkName; Extention = fileTransferInfo.Ext; FindAtPpvkTime = DateTime.Parse(fileTransferInfo.FindAtPpvkTime); ReciveFileTime = DateTime.Parse(fileTransferInfo.ReciveFileTime); SaveToDbTime = DateTime.Parse(fileTransferInfo.SaveToDbTime); }
public override IEnumerable <FileTransferInfo> LoadFiles() { var list = new List <FileTransferInfo>(); FileTransferInfo fti = null; try { while (_consumer.TryTake(out fti) && CancelationToken == WorkFlowCancelationToken.Started) { var buf = DetailedProc(fti); if (buf != null) { list.Add(buf); } } return(list); } catch (Exception e) { _console.AddException(e); #region Return to parrent queue // Если возникла ошибка, ошибочный экземляр вернётся. if (fti != null) { _consumer.TryAdd(fti); _console.AddEvent($"Maybe corrupted: {fti}", ConsoleMessageType.Trace); } // Также при ошибке возращаются вся обработанная часть. if (list.Count > 0) { list.ForEach(item => _queue.TryAdd(item)); } #endregion return(null); } }
/// <summary> /// Производит операцию над файлом, согласно назначению класса. /// </summary> /// <param name="fileTransferInfo">Информация о классе.</param> /// <returns>Обработанный класс.</returns> protected override FileTransferInfo DetailedProc(FileTransferInfo fileTransferInfo) { try { string directory = _settings[ArgsKeyList.ScanPath]; if (!Directory.Exists(directory)) { return(fileTransferInfo); } File.Delete($"{directory}\\{fileTransferInfo.Id}{fileTransferInfo.Ext}"); fileTransferInfo.Size = -1; return(fileTransferInfo); } catch (Exception e) { _console.AddException(e); return(null); } }
/// <summary> /// Производит операцию над файлом, согласно назначению класса. /// </summary> /// <param name="fileTransferInfo">Информация о классе.</param> /// <returns>Обработанный класс.</returns> protected override FileTransferInfo DetailedProc(FileTransferInfo fileTransferInfo) { return(null); }