public void CommitTest() { var localConfig = Mock.Of <ILocalConfiguration>(); Mock.Get(localConfig).Setup(c => c.DatabaseConnectionString).Returns("Server=.;Database=Reporting;User ID=sa;Password=sasa;Trusted_Connection=False;"); Mock.Get(localConfig).Setup(c => c.CustomerName).Returns("Cegeka"); var handler = Mock.Of <ITaskHandler>(); Mock.Get(handler).Setup(c => c.GetMachineName()).Returns("cegeka-api"); var reporter = new SqlStatusReporter(localConfig, handler); reporter.ReportStatus(new UpdateInstallationLogEntry("123", InstallationStatus.Failure, "It just failed.", DateTime.UtcNow)); reporter.ReportStatus(new UpdateInstallationLogEntry("321", InstallationStatus.Success, "", DateTime.UtcNow)); //reporter.Commit(); var scheduler = new RetryScheduler(); reporter.CommitWithRetry(scheduler); }
protected virtual void OnNext(EventPattern <FileSystemEventArgs> newFileEvent) { var fullPath = newFileEvent.EventArgs.FullPath; RetryScheduler.Schedule(0, TimeSpan.Zero, (state, recurse) => { Stream stream; try { stream = File.OpenRead(fullPath); } catch (Exception ex) { Interlocked.Increment(ref state); if (state < RetryCount) { recurse(state, Interval); return; } fileHandler.ReportError(fullPath, ex); return; } try { fileHandler.ProcessFile(fullPath, stream); } catch (Exception ex) { fileHandler.ReportError(fullPath, ex); } finally { stream.Dispose(); } }); }