예제 #1
0
 public HomeController(
     UptimeService uptimeService,
     ILogger <HomeController> logger)
 {
     _uptimeService = uptimeService;
     _logger        = logger;
 }
예제 #2
0
        public IndexModel(ILogger <IndexModel> logger, UptimeService uptimeService)
        {
            _logger        = logger;
            _uptimeService = uptimeService;

            Id = Guid.NewGuid();
        }
        /// <summary>
        /// Translates a Server view into grid data
        /// </summary>
        /// <param name="viewModel"></param>
        /// <returns></returns>
        private DataTableResponse FetchServerGridData(UptimeService svc, UptimeReportViewModel viewModel, IQualityIndicatorService qualityIndicatorService)
        {
            var data       = FilterData(svc, viewModel, false, qualityIndicatorService);
            var dtResponse = new DataTableResponse()
            {
                sEcho = string.IsNullOrEmpty(viewModel.GridConditions.sEcho)
                    ? "1"
                    : viewModel.GridConditions.sEcho,
                aaData          = data.Data,
                recordsTotal    = data.Data.Count(),
                recordsFiltered = data.TotalRecordCount
            };

            return(dtResponse);
        }
예제 #4
0
        public void Get_Basic_Uptime()
        {
            // Arrange
            IUptimeService service = new UptimeService();

            service.FilePath = "uptime.txt";

            // Act
            UptimeResult result = service.Get();

            // Assert
            Assert.AreEqual(Decimal.Parse("107762.39"), result.Seconds);
            Assert.AreEqual(Decimal.Parse("1796.04"), result.Minutes);
            Assert.AreEqual(Decimal.Parse("29.93"), result.Hours);
            Assert.AreEqual(Decimal.Parse("1.25"), result.Days);
        }
        private string FetchFileData(UptimeService svc, UptimeReportViewModel viewModel, IQualityIndicatorService qualityIndicatorService)
        {
            var filterResult = FilterData(svc, viewModel, true, qualityIndicatorService);

            using (var sw = new System.IO.StringWriter())
            {
                var heaaderArr = new string[]
                {
                    "Hour", "Score", "Status", "Uptime"
                };
                sw.WriteLine(string.Join(",", heaaderArr));
                foreach (var row in filterResult.Data)
                {
                    sw.WriteCsvSafeLine(row);
                }
                return(sw.ToString());
            }
        }
        private FilterResult FilterData(UptimeService svc, UptimeReportViewModel viewModel, bool isDownload, IQualityIndicatorService qualityIndicatorService)
        {
            var grid = svc.UptimeHours(viewModel.GridConditions, viewModel.FilterConditions, viewModel.FilterOperands);

            var aaData = grid.Data.Select(d => new string[]
            {
                $"{d.SummaryDayHour.ToShortDateString()} {d.SummaryDayHour.ToString("t")}",
                isDownload
                    ? $"{d.Score} {(d.AffectedByMaintenanceWindow ? "(Affected By Maintenance Window)" : string.Empty)}"
                    : $"<span class='{qualityIndicatorService.GetCssClassForScore(d.Score, false)}'>{d.Score} {(d.AffectedByMaintenanceWindow ? "(Affected By Maintenance Window)" : string.Empty)}</span>",
                d.Status.ToString(),
                d.Uptime.ToString("N2")
            }).ToArray();

            return(new FilterResult()
            {
                Data = aaData, TotalRecordCount = grid.Count
            });
        }
        public HttpResponseMessage GenerateCSV()
        {
            //Initialize service and model properties
            var connectionFactory = new HelperConnectionFactory(ConnectionHelper.Helper());
            var sqlRepo           = new SqlServerRepository(connectionFactory);
            var svc = new UptimeService(sqlRepo);
            var qualityIndicatorService = new QualityIndicatorService(new QualityIndicatorConfigurationService(new ConfigurationRepository(connectionFactory)));

            var model = PopulateServerModelSettings();

            model.GridConditions.StartRow = 1;
            model.GridConditions.EndRow   = int.MaxValue;
            //Get the data
            var fetchedData = FetchFileData(svc, model, qualityIndicatorService);

            //Serialize response
            HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);

            message.Content = new StringContent(fetchedData);
            message.Content.Headers.ContentType                 = new System.Net.Http.Headers.MediaTypeHeaderValue("text/csv");
            message.Content.Headers.ContentDisposition          = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
            message.Content.Headers.ContentDisposition.FileName = string.Format("UptimeReport-{0}.csv", DateTime.Now.ToString("yyyyMMdd-HHmmss"));
            return(message);
        }
        public HttpResponseMessage Hours()
        {
            //Initialize service and model properties
            var connectionFactory = new HelperConnectionFactory(ConnectionHelper.Helper());
            var sqlRepo           = new SqlServerRepository(connectionFactory);
            var svc = new UptimeService(sqlRepo);
            var qualityIndicatorService = new QualityIndicatorService(new QualityIndicatorConfigurationService(new ConfigurationRepository(connectionFactory)));

            var model = PopulateServerModelSettings();

            var session = (HttpSessionState)GetSession();

            session[DataTableSessionConstants.UptimeState] = model;

            //Get the data
            var dtResponse = FetchServerGridData(svc, model, qualityIndicatorService);

            //Serialize response
            var json     = dtResponse.ToJson();
            var response = Request.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
            return(response);
        }
예제 #9
0
 public HomeController(UptimeService uptimeService, ILogger <HomeController> log)
 {
     timer  = uptimeService;
     logger = log;
 }
예제 #10
0
 public Introspection(DiscordSocketClient client, UptimeService uptime)
 {
     _client = client;
     _uptime = uptime;
 }
예제 #11
0
 public StatusController(UptimeService uptimeService)
 {
     _message = $"API is running... (Uptime: {uptimeService.Uptime}, Started at {uptimeService.TimeStarted})";
 }
예제 #12
0
 public HomeController(UptimeService service)
 {
     uptimeService = service;
 }
예제 #13
0
 public HomeController(UptimeService _uptimeService)
 {
     this._uptimeService = _uptimeService;
 }
예제 #14
0
 public HomeController(UptimeService uptimeService)
 {
     _uptimeService = uptimeService;
 }
예제 #15
0
 public HomeController(UptimeService up, ILogger <HomeController> log)
 {
     uptime = up;
     logger = log;
 }
예제 #16
0
 public HomeController(UptimeService uptimeService, IConfiguration configuration, ILogger <HomeController> logger)
 {
     this.uptimeService = uptimeService;
     this.configuration = configuration;
     this.logger        = logger;
 }
예제 #17
0
 public HomeController(UptimeService uptime, ILogger <HomeController> logger)
 {
     this.uptime = uptime;
     this.logger = logger;
 }
예제 #18
0
 public UptimeViewComponent(UptimeService uptime)
 {
     this.uptime = uptime;
 }
예제 #19
0
 public HomeController(ILogger <HomeController> logger, UptimeService uptimeService)
 {
     _logger            = logger;
     this.uptimeService = uptimeService;
 }
예제 #20
0
 public IndexModel(ILogger <IndexModel> logger, UptimeService uptimeService)
 {
     _logger        = logger;
     _uptimeService = uptimeService;
 }
예제 #21
0
 public ContentMiddleware(RequestDelegate next, UptimeService up)
 {
     nextDelegate = next;
     this.up      = up;
 }
 public HomeController(UptimeService uptime)
 {
     this.uptime = uptime;
 }
 public Uptime()
     : base(lookingGlassDependency: true)
 {
     _uptime           = new UptimeService(this.SqlRepo);
     _indicatorService = new QualityIndicatorService(new QualityIndicatorConfigurationService(this.SqlRepo.ConfigurationRepository));
 }
예제 #24
0
 public HomeController(UptimeService up) => uptime = up;
 public ContentMiddleware(RequestDelegate nextDelegate, UptimeService uptime)
 {
     _nextDelegate = nextDelegate;
     _uptime       = uptime;
 }