public List <ManageServicesView> ServiceDetails(ManageServicesView Post) { //ServiceController[] scServices; //scServices = ServiceController.GetServices(); List <ManageServicesView> Result = new List <ManageServicesView>(); //Get configured services serviceView.ServicesList = ConfigurationManager.AppSettings["Services"].Split(','); ServiceController service = new ServiceController(); // Get the services details which are configured foreach (var item in serviceView.ServicesList) { try { ManageServicesView PullData = new ManageServicesView(); //Get service details service.ServiceName = item; PullData.ServiceStatus = service.Status.ToString(); PullData.DisplayName = service.DisplayName; PullData.ServiceName = service.ServiceName; if (service.MachineName == ".") { PullData.ServiceUser = "******"; } var scObj = new ManagementObject(new ManagementPath(string.Format("Win32_Service.Name='{0}'", service.ServiceName))); if (scObj["Description"] != null) { PullData.Description = scObj["Description"].ToString(); } else { PullData.Description = null; } //Adding service details to Result list Result.Add(PullData); } catch (Exception ex) { writeLogs(service.ServiceName, ex.Message, DateTime.Now); } } //Ends foreach loop //return result list return(Result); }
public ManageServicesView ServiceControls(ManageServicesView Post) { ManageServicesView serviceView = new ManageServicesView(); sc = new ServiceController(Post.ServiceName); if (Post.ServiceStatus == "Running") { try { if (sc.Status == ServiceControllerStatus.Running) { TimeSpan timeout = TimeSpan.FromMilliseconds(5000); sc.Stop(); sc.WaitForStatus(ServiceControllerStatus.Stopped, timeout); serviceView.ServiceName = Post.ServiceName; serviceView.ServiceStatus = Post.ServiceStatus; serviceView.ServiceUser = Post.ServiceUser; writeLogs(serviceView.ServiceName, "Stopped successfully", DateTime.Now); } } catch (SystemException ex) { writeLogs(Post.ServiceName, ex.Message, DateTime.Now); } } else if (Post.ServiceStatus == "Stopped") { try . { //sc = new ServiceController(Post.ServiceName); if (sc.Status != ServiceControllerStatus.Running) { TimeSpan timeout = TimeSpan.FromMilliseconds(5000); sc.Start(); sc.WaitForStatus(ServiceControllerStatus.Running, timeout); serviceView.ServiceName = Post.ServiceName; serviceView.ServiceStatus = Post.ServiceStatus; serviceView.ServiceUser = Post.ServiceUser; writeLogs(serviceView.ServiceName, "Started successfully", DateTime.Now); } } catch (SystemException ex) { writeLogs(sc.ServiceName, ex.Message, DateTime.Now); } } else if (Post.ServiceStatus == "Restart") { try { //if services running then stop and start service(Restart) if (sc.Status == ServiceControllerStatus.Running) { TimeSpan timeout = TimeSpan.FromMilliseconds(5000); sc.Stop(); sc.WaitForStatus(ServiceControllerStatus.Stopped, timeout); sc.Start(); sc.WaitForStatus(ServiceControllerStatus.Running, timeout); } else if (sc.Status != ServiceControllerStatus.Running) { //if services stopped then start service(Restart) TimeSpan timeout = TimeSpan.FromMilliseconds(5000); sc.Start(); sc.WaitForStatus(ServiceControllerStatus.Running, timeout); } writeLogs(serviceView.ServiceName, "Restarted successfully", DateTime.Now); } catch (Exception ex) { writeLogs(sc.ServiceName, ex.Message, DateTime.Now); } } return(serviceView); }