private void BindIPLData(long Node1LastIPL, long Node2LastIPL, HealthSummaryList serverHealthList)
 {
     if (Node1LastIPL > 0 && Node2LastIPL > 0)
     {
         if ((DateTime.Compare(Node1LastIPL.ConvertToLocalDateTime(), Node2LastIPL.ConvertToLocalDateTime()) < 0))
         {
             lblLastIPL.Text       = Node2LastIPL.ConvertToLocalDateTime().ToString();
             lblIPLServerName.Text = Server.HtmlEncode(serverHealthList.healthSet[1].NodeName);
             lblIPLServerIP.Text   = Server.HtmlEncode(serverHealthList.healthSet[1].NodeIP);
         }
         else
         {
             lblLastIPL.Text       = Node1LastIPL.ConvertToLocalDateTime().ToString();
             lblIPLServerName.Text = Server.HtmlEncode(serverHealthList.healthSet[0].NodeName);
             lblIPLServerIP.Text   = Server.HtmlEncode(serverHealthList.healthSet[0].NodeIP);
         }
     }
     else if (Node1LastIPL == 0 && Node2LastIPL == 0)
     {
         lblLastIPL.Text       = "-";
         lblIPLServerName.Text = "-";
         lblIPLServerIP.Text   = "-";
     }
     else
     {
         lblLastIPL.Text       = (Node1LastIPL > 0) ? Node1LastIPL.ConvertToLocalDateTime().ToString() : Node2LastIPL.ConvertToLocalDateTime().ToString();
         lblIPLServerName.Text = Server.HtmlEncode((Node1LastIPL > 0) ? serverHealthList.healthSet[0].NodeName : serverHealthList.healthSet[1].NodeName);
         lblIPLServerIP.Text   = Server.HtmlEncode((Node1LastIPL > 0) ? serverHealthList.healthSet[0].NodeIP : serverHealthList.healthSet[1].NodeIP);
     }
 }
    private Tuple <HealthSummaryList, DateTime> GetStoredJSONResponse()
    {
        DateTime          HealthOn   = DateTime.MinValue;
        HealthSummaryList nodeHealth = null;

        try
        {
            string responseString = "";
            string fileName       = LoggerExtension.logger.LogPath.TrimEnd(new char[] { '/', '\\' }) + "/" + RESTServiceList.ServerHealthService + ".txt";

            if (File.Exists(fileName))
            {
                responseString = File.ReadAllText(fileName);
                HealthOn       = Convert.ToDateTime(responseString.Substring(0, responseString.IndexOf('|')));
                responseString = responseString.Substring(responseString.IndexOf('|') + 1);

                if (responseString != string.Empty)
                {
                    nodeHealth = JsonConvert.DeserializeObject <HealthSummaryList>(responseString);
                }
            }
        }
        catch (Exception ex)
        {
            Logger.WriteError("Failed to retrieve stored Server Health:" + ex.ToString());
            HealthOn   = DateTime.MinValue;
            nodeHealth = null;
        }
        return(new Tuple <HealthSummaryList, DateTime>(nodeHealth, HealthOn));
    }
 private void BindSingleNode(HealthSummaryList serverHealthList)
 {
     lblLastIPL.Text         = (serverHealthList.healthSet[0].LastIPL == 0) ? "-" : serverHealthList.healthSet[0].LastIPL.ConvertToLocalDateTime().ToString();
     lblLastUpdateOffer.Text = (serverHealthList.healthSet[0].LastFetch == 0) ? "-" : serverHealthList.healthSet[0].LastFetch.ConvertToLocalDateTime().ToString();
     lblFetchServerName.Text = Server.HtmlEncode((serverHealthList.healthSet[0].LastFetch == 0) ? "-" : serverHealthList.healthSet[0].NodeName);
     lblFetchServerIP.Text   = Server.HtmlEncode((serverHealthList.healthSet[0].LastFetch == 0) ? "-" : serverHealthList.healthSet[0].NodeIP);
     lblIPLServerName.Text   = Server.HtmlEncode((serverHealthList.healthSet[0].LastIPL == 0) ? "-" : serverHealthList.healthSet[0].NodeName);
     lblIPLServerIP.Text     = Server.HtmlEncode((serverHealthList.healthSet[0].LastIPL == 0) ? "-" : serverHealthList.healthSet[0].NodeIP);
 }
    private void BindData(HealthSummaryList serverHealthList)
    {
        if (serverHealthList.healthSet.Count == 1)
        {
            BindSingleNode(serverHealthList);
        }
        else
        {
            long Node1LastFetch = serverHealthList.healthSet[0].LastFetch;
            long Node2LastFetch = serverHealthList.healthSet[1].LastFetch;
            long Node1LastIPL   = serverHealthList.healthSet[0].LastIPL;
            long Node2LastIPL   = serverHealthList.healthSet[1].LastIPL;

            BindFetchData(Node1LastFetch, Node2LastFetch, serverHealthList);

            BindIPLData(Node1LastIPL, Node2LastIPL, serverHealthList);
        }
    }
    private void PopulateServerSummary()
    {
        string messagePhraseTerm = m_health.CheckForIPL(LocationID);

        if (messagePhraseTerm != string.Empty)
        {
            ucServerHealthTabs.SetInfoMessage(Copient.PhraseLib.Lookup(messagePhraseTerm, LanguageID), true);
        }


        //Bind Health
        List <KeyValuePair <string, string> > headers   = new List <KeyValuePair <string, string> >();
        IRestServiceHelper RESTServiceHelper            = CurrentRequest.Resolver.Resolve <IRestServiceHelper>();
        KeyValuePair <HealthSummaryList, string> result = RESTServiceHelper.CallService <HealthSummaryList>(RESTServiceList.ServerHealthService, (hdnURL.Value != string.Empty ? hdnURL.Value + "/offerdistributionstatus" : ""), LanguageID, HttpMethod.Get, "", true, headers);
        string errorMessage = result.Value;

        serverHealthList = result.Key;

        if (errorMessage == string.Empty)
        {
            BindData(serverHealthList);
            BindWarnings(hdnURL.Value + "/allerrors?&report=true&offset=0&pagesize=" + hdnPageSize1.Value, gvWarnings, hdnPageSize1, hdnPageCount1, loadmoreajaxloader1);
            BindFiles(hdnURL.Value + "/allfiles?offset=0&pagesize=" + hdnPageSize.Value, gvFiles, hdnPageSize, hdnPageCount, loadmoreajaxloader);
        }
        else
        {
            ucServerHealthTabs.SetInfoMessage(errorMessage, true, false);

            var storedServerHealth = GetStoredJSONResponse();
            serverHealthList = storedServerHealth.Item1;
            DateTime HealthOn = storedServerHealth.Item2;

            if (serverHealthList != null && HealthOn != null && HealthOn != DateTime.MinValue)
            {
                ucServerHealthTabs.SetInfoMessage(PhraseLib.Lookup("serverhealth.msg", LanguageID) + " " + HealthOn.ToString("dd/MM/yyyy") + ".", true, true);
                BindData(serverHealthList);
            }
            loadmoreajaxloader.InnerHtml = loadmoreajaxloader1.InnerHtml = "<center>" + PhraseLib.Lookup("term.data", LanguageID) + " " + PhraseLib.Lookup("term.unavailable", LanguageID).ToLower() + "." + "</center>";
        }
    }