/// <summary> /// Send Update Event /// </summary> /// <param name="currentFileID"></param> /// <param name="currentFolderID"></param> /// <param name="CurrentFolderName"></param> /// <param name="CurrentFileName"></param> private void SendUpdateEvent(long currentFileID = 0, long currentFolderID = 0, string CurrentFolderName = "", string CurrentFileName = "") { ScanFolderUpdateEventArgs args = new ScanFolderUpdateEventArgs(); args.TotalFolders = _totalFolders; args.TotalFiles = _totalFiles; args.CurrentFileID = currentFileID; args.CurrentFolderID = currentFolderID; args.CurrentFileName = CurrentFileName; args.CurrentFolderName = CurrentFolderName; // Calculate Estimated Time if (currentFileID > 0) { long ElapsedTicks = _totalTime.ElapsedTicks; long ElapsedTimePerFile = ElapsedTicks / currentFileID; long TotalTimeCalculated = ElapsedTimePerFile * _totalFiles; long EstimatedTimeToPass = TotalTimeCalculated - ElapsedTicks; args.EstimatedTime = TimeSpan.FromTicks(EstimatedTimeToPass); } else { // Impossible to calculate the estimated time args.EstimatedTime = new TimeSpan(); } OnNewScanFolderUpdate(args); }
/// <summary> /// Thrown Event /// </summary> /// <param name="e"></param> protected virtual void OnNewScanFolderUpdate(ScanFolderUpdateEventArgs e) { NewScanFolderUpdate?.Invoke(this, e); }