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
        private ActionResult _DataHost(int id, string h)
        {
            ZabHost host = ZabTools.Weby().Where(w => w.hostid == id.ToString() & w.itemIdResponseTime != null).FirstOrDefault();

            if (host == null)
            {
                return(Json(ApiResponseStatus.StatniWebNotFound, JsonRequestBehavior.AllowGet));
            }

            if (host.ValidHash(h))
            {
                try
                {
                    var data    = ZabTools.GetHostAvailabilityLong(host);
                    var webssl  = ZabTools.SslStatusForHostId(host.hostid);
                    var ssldata = new
                    {
                        grade      = webssl?.Status().ToNiceDisplayName(),
                        time       = 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(Content(Newtonsoft.Json.JsonConvert.SerializeObject(
                                       new
                    {
                        availability = data,
                        ssl = ssldata
                    })
                                   , "text/json"));
                }
                catch (Exception e)
                {
                    HlidacStatu.Util.Consts.Logger.Error($"_DataHost id ${id}", e);
                    return(Json(ApiResponseStatus.GeneralExceptionError, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                return(Json(ApiResponseStatus.StatniWebNotFound, JsonRequestBehavior.AllowGet));
            }
        }