public void DeserializeFromString(String stringData) { try { XmlSerializer xmlSerializer = new XmlSerializer(this.GetType()); using (TextReader reader = new StringReader(stringData)) { BackupInformation temp = (BackupInformation)xmlSerializer.Deserialize(reader); this.ServiceList = temp.ServiceList; } } catch (Exception E) { String exception = E.ToString(); } }
static int Main(string[] args) { BackupInformation backupInformation = new BackupInformation(); Console.Clear(); // Get argument value if (args.Length > 0) { switch (args[0]) { case "-r": // Restore services backup try { if (backupInformation != null) { backupInformation.Load(); if (backupInformation.ServiceList.Count > 0) { Console.Clear(); Console.SetCursorPosition(0, 0); Console.WriteLine("The service restore started. Please wait..."); foreach (ServiceInformation item in backupInformation.ServiceList) { try { ServiceController service = new ServiceController(item.Name); service.Refresh(); if (!service.StartType.Equals(item.StartType)) { ServiceHelper.ChangeStartModeT(service, item.StartType); } if (service.Status != item.Status) { Console.Clear(); Console.SetCursorPosition(0, 0); Console.WriteLine(String.Format("Service {0} is under processing. Please wait...", item.Name)); if (item.Status.Equals(ServiceControllerStatus.Running)) { service.Start(); TimeSpan timeout = TimeSpan.FromMilliseconds(10000); service.WaitForStatus(ServiceControllerStatus.Running, timeout); service.Refresh(); } else if (item.Status.Equals(ServiceControllerStatus.Stopped)) { service.Stop(); TimeSpan timeout = TimeSpan.FromMilliseconds(10000); service.WaitForStatus(ServiceControllerStatus.Running, timeout); service.Refresh(); } } } catch { continue; } } Console.Clear(); Console.SetCursorPosition(0, 0); Console.WriteLine("The service restore completed successfuly"); } } return(-1); } catch (Exception E) { String exception = E.ToString(); return(-1); } case "-b": // Create services backup try { if (backupInformation != null) { Console.Clear(); Console.SetCursorPosition(0, 0); Console.WriteLine("The service backup started. Please wait..."); ServiceController[] Services = ServiceController.GetServices(); foreach (ServiceController service in Services) { backupInformation.ServiceList.Add(new ServiceInformation() { Name = service.ServiceName, StartType = service.StartType, Status = service.Status }); } backupInformation.Save(); Console.Clear(); Console.SetCursorPosition(0, 0); Console.WriteLine("The service backup completed successfuly"); return(1); } return(-1); } catch (Exception E) { String exception = E.ToString(); return(-1); } } } return(-1); }