public static string GetUpdatedSystemProcessThreads(string ThreadLastUpdateDateStr, string EventLogLastUpdateDateStr)
        {
            try
            {
                DateTime ThreadLastUpdateDate = DateTime.UtcNow;
                if (DateTime.TryParse(ThreadLastUpdateDateStr, out ThreadLastUpdateDate))
                {
                    ThreadLastUpdateDate = ThreadLastUpdateDate.ToUniversalTime();
                }
                DateTime EventLogLastUpdateDate = DateTime.UtcNow;

                if (DateTime.TryParse(EventLogLastUpdateDateStr, out EventLogLastUpdateDate))
                {
                    EventLogLastUpdateDate = EventLogLastUpdateDate.ToUniversalTime();
                }
                // ControlPanel.Core.ICPWebClient webClient = ControlPanel.Core.IoC.Resolve<ControlPanel.Core.ICPWebClient>("CPWebClient");
                CPServiceClient webClient       = new CPServiceClient();
                var             threads         = webClient.GetSystemProcessThreadsByLastUpdateDate(ThreadLastUpdateDate);
                var             eventLogs       = webClient.GetEventLogByLastUpdateDate(EventLogLastUpdateDate);
                DateTime        maxThreadDate   = ThreadLastUpdateDate;
                DateTime        maxEventLogDate = EventLogLastUpdateDate;

                if (threads.Data == null)
                {
                    threads.Data = new List <ControlPanel.Core.Entities.SystemProcessThread>();
                }
                else if (threads.Data.Count > 0)
                {
                    maxThreadDate = threads.Data.Select(x => x.LastUpdateDate).Max().Value;
                }

                foreach (var dt in threads.Data)
                {
                    if (dt.LastSuccessfullyExecuted != null)
                    {
                        dt.LastExecutedSeconds = (DateTime.UtcNow - dt.LastSuccessfullyExecuted.Value.ToUniversalTime()).ToString(@"hh\:mm\:ss");
                    }
                }

                if (eventLogs == null)
                {
                    eventLogs = new List <ControlPanel.Core.Entities.SystemEventLog>();
                }
                else if (eventLogs.Count > 0)
                {
                    maxEventLogDate = eventLogs.Select(x => x.DateOccured).Max();
                }

                if (threads.Data != null && threads.Data.Count > 0)
                {
                    return(JSONhelper.GetString(new ControlPanelUpdateModel()
                    {
                        Threads = threads.Data, ThreadLastUpdateDate = maxThreadDate, EventLogs = eventLogs, EventLogLastUpdateDate = maxEventLogDate
                    }));
                }
                else
                {
                    return(JSONhelper.GetString(new ControlPanelUpdateModel()
                    {
                        ThreadLastUpdateDate = ThreadLastUpdateDate, EventLogLastUpdateDate = EventLogLastUpdateDate
                    }));
                }
            }
            catch (Exception exp) { return(exp.Message); }
        }
        public static string GetUpdatedSystemProcessThreads(string ThreadLastUpdateDateStr, string EventLogLastUpdateDateStr)
        {
            try
            {
                DateTime ThreadLastUpdateDate = DateTime.UtcNow;
                if (DateTime.TryParse(ThreadLastUpdateDateStr, out ThreadLastUpdateDate))
                {
                    ThreadLastUpdateDate = ThreadLastUpdateDate.ToUniversalTime();
                }
                DateTime EventLogLastUpdateDate = DateTime.UtcNow;

                if (DateTime.TryParse(EventLogLastUpdateDateStr, out EventLogLastUpdateDate))
                {
                    EventLogLastUpdateDate = EventLogLastUpdateDate.ToUniversalTime();
                }
               // ControlPanel.Core.ICPWebClient webClient = ControlPanel.Core.IoC.Resolve<ControlPanel.Core.ICPWebClient>("CPWebClient");
                CPServiceClient webClient = new CPServiceClient();
                var threads = webClient.GetSystemProcessThreadsByLastUpdateDate(ThreadLastUpdateDate);
                var eventLogs = webClient.GetEventLogByLastUpdateDate(EventLogLastUpdateDate);
                DateTime maxThreadDate = ThreadLastUpdateDate;
                DateTime maxEventLogDate = EventLogLastUpdateDate;

                if (threads.Data == null)
                    threads.Data = new List<ControlPanel.Core.Entities.SystemProcessThread>();
                else if (threads.Data.Count > 0)
                    maxThreadDate = threads.Data.Select(x => x.LastUpdateDate).Max().Value;

                foreach (var dt in threads.Data)
                {
                    if (dt.LastSuccessfullyExecuted != null)
                        dt.LastExecutedSeconds = (DateTime.UtcNow - dt.LastSuccessfullyExecuted.Value.ToUniversalTime()).ToString(@"hh\:mm\:ss");
                }

                if (eventLogs == null) eventLogs = new List<ControlPanel.Core.Entities.SystemEventLog>();
                else if (eventLogs.Count > 0)
                    maxEventLogDate = eventLogs.Select(x => x.DateOccured).Max();

                if (threads.Data != null && threads.Data.Count > 0)

                    return JSONhelper.GetString(new ControlPanelUpdateModel() { Threads = threads.Data, ThreadLastUpdateDate = maxThreadDate, EventLogs = eventLogs, EventLogLastUpdateDate = maxEventLogDate });
                else return JSONhelper.GetString(new ControlPanelUpdateModel() { ThreadLastUpdateDate = ThreadLastUpdateDate, EventLogLastUpdateDate = EventLogLastUpdateDate });
            }
            catch (Exception exp) { return exp.Message; }
        }