public PenguinProcessor(IPingConfiguration config, IPenguinRepository penguinRepoi, IPenguinResultsRepository resultsRepo, INotifierFactory notifierFactory, ITransformerFactory transformerfactory) { _httpClientPinger = new HttpClientPinger(config); _urlRepo = penguinRepoi; _resultsRepo = resultsRepo; _transformer = transformerfactory.CreateTransformer(); _notifier = notifierFactory.CreateNotifier(); }
public RootModule(IPenguinRepository penguinRepository, IPenguinResultsRepository resultsRepo) { _resultsRepo = resultsRepo; Get["/"] = x => new RedirectResponse("/pingowins", RedirectResponse.RedirectType.Temporary); Get["/pingowins", true] = async(x, t) => { var all = await penguinRepository.GetAll(); var allPenguinsModel = new PingOwinsModel(); var pengs = all.Select(c => new SinglePingOwin { Url = c.Url }); allPenguinsModel.Penguins = pengs; return(View["AllPingowins.sshtml", allPenguinsModel]); }; Get["/results", true] = async(x, t) => { var filter = this.Bind <ResultsQueryFilter>(); if (filter == null || filter.Take <= 0) { return(new RedirectResponse("/results?skip=0&take=20")); } var allResults = await _resultsRepo.GetAll(filter.Skip, filter.Take); var resultsModel = new PingResultsModel(); var results = allResults.Select(c => new SingleResult { Url = c.Url, ResponseTime = c.ResponseTime.ToString(), TimeStamp = c.TimeStamp?.ToString("yyyy-MM-dd HH:mm:ss") ?? "Undefined" }); resultsModel.Results = results; return(View["Results.sshtml", resultsModel]); }; }