public WebStatusExport Status(string id = null)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new HttpResponseException(new ErrorMessage(System.Net.HttpStatusCode.BadRequest,
                                                                 $"Web nenalezen"
                                                                 ));
            }

            ZabHost host = ZabTools.Weby().Where(w => w.hostid == id.ToString() & w.itemIdResponseTime != null).FirstOrDefault();

            if (host == null)
            {
                throw new HttpResponseException(new ErrorMessage(System.Net.HttpStatusCode.BadRequest,
                                                                 $"Web nenalezen"
                                                                 ));
            }

            try
            {
                ZabHostAvailability data   = ZabTools.GetHostAvailabilityLong(host);
                ZabHostSslStatus    webssl = ZabTools.SslStatusForHostId(host.hostid);
                var ssldata = new WebStatusExport.SslData()
                {
                    Grade       = webssl?.Status().ToNiceDisplayName(),
                    LatestCheck = webssl?.Time,
                    Copyright   = "(c) © Qualys, Inc. https://www.ssllabs.com/",
                    FullReport  = "https://www.ssllabs.com/ssltest/analyze.html?d=" + webssl?.Host?.UriHost()
                };
                if (webssl == null)
                {
                    ssldata = null;
                }
                return
                    (new WebStatusExport()
                {
                    Availability = data,
                    SSL = ssldata
                });
            }
            catch (Exception e)
            {
                HlidacStatu.Util.Consts.Logger.Error($"_DataHost id ${id}", e);
                throw new HttpResponseException(new ErrorMessage(System.Net.HttpStatusCode.BadRequest,
                                                                 $"Interní chyba při načítání systému."
                                                                 ));
            }
        }
Exemple #2
0
        public ActionResult ChartData(string id, string hh, long?f, long?t, int?h = 24)
        {
            id = id?.ToLower() ?? "";
            string   content  = "{}";
            DateTime fromDate = DateTime.Now.AddHours(-1 * h.Value);
            DateTime toDate   = DateTime.Now;

            if (f.HasValue)
            {
                fromDate = new DateTime(f.Value);
            }
            if (t.HasValue)
            {
                toDate = new DateTime(t.Value);
            }

            IEnumerable <ZabHostAvailability> data = null;

            switch (id)
            {
            case "index":
                data = ZabTools.WebyData("0")
                       ?.OrderBy(o => o.Host.publicname)
                       ?.Reverse()
                       ?.ToList();

                break;

            case "1":
                data = ZabTools.WebyData(ZabTools.WebyItems("1"))
                       ?.OrderBy(o => o.Host.publicname)
                       ?.Reverse()
                       ?.ToList();
                break;

            case "2":
                data = ZabTools.WebyData(ZabTools.WebyItems("2"))
                       ?.OrderBy(o => o.Host.publicname)
                       ?.Reverse()
                       ?.ToList();
                break;

            case "3":
                //data = ZabTools.WebyData(ZabTools.WebyItems("3"))
                //    ?.OrderBy(o => o.Host.publicname)
                //    ?.Reverse()
                //    ?.ToList();
                break;

            case "ustredni":
                data = ZabTools.WebyData(ZabTools.WebyItems("ustredni"))
                       ?.OrderBy(o => o.Host.publicname)
                       ?.Reverse()
                       ?.ToList();
                break;

            case "krajske":
                break;

            default:
                break;
            }
            if (id.StartsWith("w"))
            {
                id = id.Replace("w", "");
                ZabHost host = ZabTools.Weby().Where(w => w.hostid == id.ToString() & w.itemIdResponseTime != null).FirstOrDefault();
                if (host != null)
                {
                    if (host.ValidHash(hh))
                    {
                        data = new ZabHostAvailability[] { ZabTools.GetHostAvailabilityLong(host) };
                    }
                }
            }


            if (data != null)
            {
                var dataready = new
                {
                    data = data.AsEnumerable()
                           .Select((x, l) => x.DataForChart(fromDate, toDate, l))
                           .SelectMany(x => x)
                           .ToArray(),
                    cats       = data.ToDictionary(k => k.Host.hostid, d => new { host = d.Host, lastResponse = d.Data.Last() }),
                    categories = data.Select(m => m.Host.hostid).ToArray(),
                    colsize    = data.Select(d => d.ColSize(fromDate, toDate)).Max(),
                };
                content = Newtonsoft.Json.JsonConvert.SerializeObject(dataready);
            }
            return(Content(content, "application/json"));
        }