Esempio n. 1
0
        public ServerDataViewModel ServerData(int serverId)
        {
            ServerLogic         sl   = new ServerLogic();
            ServerDataViewModel sdvm = sl.GetServerData(serverId);

            return(sdvm);
        }
Esempio n. 2
0
        public ActionResult Index()
        {
            UserLogic    gl = new UserLogic();
            RequestLogic rl = new RequestLogic();
            ServerLogic  sl = new ServerLogic();

            //Different models
            RequestDataViewModel rdvm = rl.GetRequestResponseTimeGraphData();
            ServerDataViewModel  sdvm = sl.GetServerData(10);
            SettingLogic         s    = new SettingLogic();
            //events
            EventViewModel evm = new EventViewModel();

            evm.Events            = new EventLogic().GetLastEvents(5);
            evm.NotificationCount = Facade.NotificationDomainController.GetAll().Where(x => x.Seen == false).ToList().Count;

            //MasterViewModel
            DashBoardViewModel dbvm = gl.GetUsersGraphData();

            dbvm.RequestDataViewModel = rdvm;
            dbvm.ServerDataViewModel  = sdvm;
            dbvm.SettingsModel        = s.GetSettings();
            dbvm.EventViewModel       = evm;
            //   DashBoardViewModel dbvm = gl.GetGraphDataOneHourInterval();
            return(View(dbvm));
        }
Esempio n. 3
0
        private void CreateServerDownEvent(ServerDataViewModel sdvm)
        {
            try
            {
                Model.EventType type                      = Facade.EventTypeDomainController.GetTypeByName(StaticStrings.ServerDown);
                int             serverInterval            = Facade.SettingDomainController.GetValueByName(StaticStrings.ServerDetailInterval);
                RequestSummary  requestSummary            = Facade.RequestSummaryDomainController.GetRequestSummaryLastMinutes(serverInterval);
                ServerDetail    latestServerDetailSummary = Facade.ServerDetailDomainController.GetLatestServerDetailByInterval(serverInterval + (serverInterval / 2));

                Notification n = new Notification();
                n.Seen = false;
                n      = Facade.NotificationDomainController.Create(n);

                Model.Event e = new Model.Event();
                e.Created          = DateTime.Now;
                e.Value            = 1;
                e.EventTypeId      = type.Id;
                e.RequestSummaryId = requestSummary == null ? 0 : requestSummary.Id;
                e.ServerDetailId   = latestServerDetailSummary == null ? 0 : latestServerDetailSummary.Id;
                e.NotificationId   = n.Id;
                Facade.EventDomainController.Create(e);
                sdvm.Uptime        = CalculateUpTime(0);
                sdvm.CurrentStatus = false;
            }
            catch (Exception e)
            {
                log.Error("ServerLogic - CreateServerDownEvent: " + e);
            }
        }
Esempio n. 4
0
 private void UpdateValueAndUptime(ServerDataViewModel sdvm, Model.Event lastUpOrDownEvent)
 {
     try
     {
         if (lastUpOrDownEvent != null)
         {
             TimeSpan ts   = DateTime.Now.Subtract(lastUpOrDownEvent.Created); //the time between the event was created and now.
             decimal  time = Convert.ToDecimal(ts.TotalSeconds);               //convert to totalminutes
             lastUpOrDownEvent.Value = Convert.ToInt32(ts.TotalMinutes);       //update current value
             sdvm.Uptime             = CalculateUpTime(time);                  //update uptime
             Facade.EventDomainController.UpdateEvent(lastUpOrDownEvent);
         }
     }
     catch (Exception e)
     {
         log.Error("ServerLogic - UpdateValueAndUptime: " + e);
     }
 }
Esempio n. 5
0
        public ServerDataViewModel GetServerData(int serverId)
        {
            ServerDataViewModel sdvm = new ServerDataViewModel();

            try
            {
                sdvm.NetworkViewModel = new NetworkViewModel();
                //Graph data
                sdvm.CPUUtilizationGraphData = GenerateGraphData(serverId);

                //Servers available (for dropdown)
                sdvm.Servers = GetServers(); // USER ID LATER

                sdvm.Created = DateTime.Now;



                //SHOW SUMMARY - USE THIS CODE
                //int serverInterval = Facade.SettingDomainController.GetValueByName(StaticStrings.ServerDetailInterval);
                //ServerDetail latestServerDetails = Facade.ServerDetailDomainController.GetLatestServerDetailByInterval(serverInterval);

                ServerDetailCurrent latestServerDetails = Facade.ServerDetailCurrentDomainController.GetLatest();

                if (latestServerDetails != null)
                {
                    sdvm.CurrentStatus = true;
                    sdvm.Handles       = latestServerDetails.Handles;
                    sdvm.Threads       = latestServerDetails.Thread;
                    // sdvm.Uptime = CalculateUpTime(latestServerDetails.UpTime); The computer uptime,
                    sdvm.RAMAvailable = Convert.ToInt32(latestServerDetails.RAMAvailable);
                    sdvm.Processes    = latestServerDetails.Processes;
                    sdvm.RAMTotal     = Convert.ToInt32(latestServerDetails.RAMTotal);
                    sdvm.NetworkViewModel.NetworkUtilization = latestServerDetails.NetworkUtilization;
                }

                //Should refactors
                int interval = Facade.SettingDomainController.GetValueByName(StaticStrings.ServerDetailInterval);

                List <ServerDetail> serverDetail = Facade.ServerDetailDomainController.GetOneDayServerDetail(serverId);
                if (serverDetail != null && serverDetail.Count > 0)
                {
                    sdvm.NetworkViewModel.Download = serverDetail.Sum(x => x.BytesReceived);
                    sdvm.NetworkViewModel.Upload   = serverDetail.Sum(x => x.BytesSent);

                    int    totalReceived          = serverDetail.Max(x => x.BytesReceived);
                    int    totalSent              = serverDetail.Max(x => x.BytesSent);
                    string totalReceivedFormatted = SizeSuffix(totalReceived, 1) + "/S";
                    string totalSentFormatted     = SizeSuffix(totalSent, 1) + "/S";

                    sdvm.NetworkViewModel.PeakDownloadString = totalReceivedFormatted;
                    sdvm.NetworkViewModel.PeakUploadString   = totalSentFormatted;
                    sdvm.NetworkViewModel.NetworkUtilization = Convert.ToInt32(serverDetail.Average(x => x.NetworkUtilization));
                }


                bool dataLastMinut = Facade.ServerDetailCurrentDomainController.HasAchievedDataLastFifteenSeconds();
                //get last up/down event and assign ServerStatus to this.
                var  lastDown     = Facade.EventDomainController.GetLatestServerDownEvent();
                var  lastUp       = Facade.EventDomainController.GetLatestServerUpEvent();
                bool ServerStatus = dataLastMinut;
                if (lastUp != null && lastDown != null)
                {
                    if (lastDown.Created > lastUp.Created)
                    {
                        ServerStatus = false;
                    }
                    else
                    {
                        ServerStatus = true;
                    }
                }


                if (!dataLastMinut)   //Server considered down
                {
                    if (ServerStatus) // If serverstatus was up, then it just went down and should create event
                    {
                        ServerStatus = false;
                        CreateServerDownEvent(sdvm); //Create event, and finish last server up event
                        Model.Event lastUpEvent = Facade.EventDomainController.GetLatestServerUpEvent();
                        if (lastUpEvent != null)
                        {
                            TimeSpan ts = DateTime.Now.Subtract(lastUpEvent.Created);
                            lastUpEvent.Value = Convert.ToInt32(ts.TotalMinutes);
                            Facade.EventDomainController.UpdateEvent(lastUpEvent);
                        }
                        else
                        {
                            CreateServerUpEvent(sdvm);
                        }
                    }
                    else  //Server down and last serverstatus was false, we just update the last downevents value, and the "downtime"
                    {
                        Model.Event lastDownEvent = Facade.EventDomainController.GetLatestServerDownEvent();
                        if (lastDownEvent != null)
                        {
                            UpdateValueAndUptime(sdvm, lastDownEvent);
                        }
                        else
                        {
                            CreateServerDownEvent(sdvm);
                        }
                    }
                }
                else //Server is up
                {
                    if (!ServerStatus) // If serverstatus was down, then it just went up and should create event
                    {
                        ServerStatus = true;
                        CreateServerUpEvent(sdvm); //Create event, and finish last server up event
                        Model.Event lastDownEvent = Facade.EventDomainController.GetLatestServerDownEvent();
                        if (lastDownEvent != null)
                        {
                            TimeSpan ts = DateTime.Now.Subtract(lastDownEvent.Created);
                            lastDownEvent.Value = Convert.ToInt32(ts.TotalMinutes);
                            Facade.EventDomainController.UpdateEvent(lastDownEvent);
                        }
                        else
                        {
                            CreateServerDownEvent(sdvm);
                        }
                    }
                    else
                    {  //just update the value
                        Model.Event lastUpEvent = Facade.EventDomainController.GetLatestServerUpEvent();
                        if (lastUpEvent != null)
                        {
                            UpdateValueAndUptime(sdvm, lastUpEvent);
                        }
                        else
                        {
                            CreateServerUpEvent(sdvm);
                        }
                    }
                }
                sdvm.CurrentStatus = ServerStatus;
            }
            catch (Exception e)
            {
                log.Error("ServerLogic - GetServerData: " + e);
            }


            return(sdvm);
        }