示例#1
0
 /// <summary>
 /// The first thing that program is going to do after showing up
 /// like checking for database connection etc
 /// </summary>
 public static void StartUp_Engine()
 {
     if (!EngineOn)
     {
         try
         {
             IniFile file2 = new IniFile(Paths.BackupConfigPath);
             if (!File.Exists(Paths.SetupConfigPath))
             {
                 IsSetup = true;
                 Set set = new Set {
                     Title = "تنصيب البرنامج"
                 };
                 set.ShowDialog();
             }
             Config co = new Config();
             co.Read(true);
             DataHolder.CreateConnection(co.DbUserName, co.DbUserPassword, co.DbName, co.Hostname);
             string ver = co.Version;
             if (Convert.ToInt16(ver) < Convert.ToInt16(Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", "")))
             {
                 IsSetup = true;
                 //IsUpgrading = true;
                 Set set = new Set {
                     Title = "ترقية البرنامج"
                 };
                 set.ShowDialog();
             }
             if (!IsSetup)
             {
                 co.Read(true, true);
                 if (AccountsTable.CountUsers() == 0)
                 {
                     IsSetup   = true;
                     NoAccount = true;
                     Set set = new Set {
                         Title = "تنصيب البرنامج"
                     };
                     View.Pages.Setup.IsInstallCompleted = true;
                     set.ShowDialog();
                 }
                 BillsTable.LBN();
                 MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE);
                 cmd.Update("logs").Set("Online", 0).Where("Online", 1).Execute();
                 sb  = INIDecrypt(file2.ReadString("Settings", "Backup"));
                 tb  = INIDecrypt(file2.ReadString("Settings", "TakeBackup"));
                 st  = INIDecrypt(file2.ReadString("Settings", "Type"));
                 stt = INIDecrypt(file2.ReadString("Settings", "Time"));
                 std = INIDecrypt(file2.ReadString("Settings", "Date"));
                 #region database logs
                 if (co.AccountsLog == "0")
                 {
                     View.Pages.Settings.IsRecAcc = false;
                 }
                 else if (co.AccountsLog == "1")
                 {
                     View.Pages.Settings.IsRecAcc = true;
                 }
                 if (co.DrugsLog == "0")
                 {
                     View.Pages.Settings.IsRecMed = false;
                 }
                 else if (co.DrugsLog == "1")
                 {
                     View.Pages.Settings.IsRecMed = true;
                 }
                 #endregion
                 #region automatic backup system
                 if (File.Exists(Paths.BackupConfigPath))
                 {
                     try
                     {
                         if (Convert.ToByte(sb) == 1)
                         {
                             if (Convert.ToByte(st) == 1)
                             {
                                 string[] time = stt.Split(':');
                                 if (Convert.ToByte(tb) == 0)
                                 {
                                     if (DateTime.Now.Date == Convert.ToDateTime(std))
                                     {
                                         if (DateTime.Now.Hour - Convert.ToByte(time[0]) == 0 && DateTime.Now.Minute - Convert.ToByte(time[1]) >= 0)
                                         {
                                             BackUp.Backup("PROPHMW");
                                             file2.Write("Settings", "TakeBackup", "1");
                                             tb = "1";
                                             Console.WriteLine("Daily backup has been taken");
                                         }
                                         if (DateTime.Now.Hour - Convert.ToByte(time[0]) >= 1)
                                         {
                                             BackUp.Backup("PROPHMW");
                                             file2.Write("Settings", "TakeBackup", "1");
                                             tb = "1";
                                             Console.WriteLine("Daily backup has been taken");
                                         }
                                     }
                                 }
                                 else
                                 {
                                     if (DateTime.Now.Date > Convert.ToDateTime(std))
                                     {
                                         file2.Write("Settings", "TakeBackup", "0");
                                         tb = "0";
                                         Console.WriteLine("Daily backup has been reset");
                                     }
                                 }
                             }
                             else if (Convert.ToByte(st) == 2)
                             {
                                 if (Convert.ToByte(tb) == 0)
                                 {
                                     if (Convert.ToByte(stt) <= Convert.ToByte(DateTime.Now.DayOfWeek))
                                     {
                                         BackUp.Backup("PROPHMW");
                                         file2.Write("Settings", "TakeBackup", "1");
                                         tb = "1";
                                         Console.WriteLine("Weekly backup has been taken");
                                     }
                                 }
                                 else
                                 {
                                     if (Convert.ToByte(stt) > Convert.ToByte(DateTime.Now.DayOfWeek))
                                     {
                                         file2.Write("Settings", "TakeBackup", "0");
                                         tb = "0";
                                         Console.WriteLine("Weekly backup has been reset");
                                     }
                                 }
                             }
                             else if (Convert.ToByte(st) == 3)
                             {
                                 if (Convert.ToByte(tb) == 0)
                                 {
                                     if (Convert.ToByte(stt) <= Convert.ToByte(DateTime.Now.Day))
                                     {
                                         BackUp.Backup("PROPHMW");
                                         file2.Write("Settings", "TakeBackup", "1");
                                         tb = "1";
                                         Console.WriteLine("Monthly backup has been taken");
                                     }
                                 }
                                 else
                                 {
                                     if (Convert.ToByte(stt) > Convert.ToByte(DateTime.Now.Day))
                                     {
                                         file2.Write("Settings", "TakeBackup", "0");
                                         tb = "0";
                                         Console.WriteLine("Monthly backup has been reset");
                                     }
                                 }
                             }
                         }
                     }
                     catch (Exception e)
                     {
                         Console.WriteLine("Check the automatic backup system in the core");
                         SaveException(e);
                         File.Delete(Paths.BackupConfigPath);
                     }
                 }
                 #endregion
                 EngineOn = true;
             }
         }
         catch (Exception ex)
         {
             SaveException(ex);
             if (File.Exists(Paths.SetupConfigPath))
             {
                 File.Delete(Paths.SetupConfigPath);
             }
             if (File.Exists(Paths.BackupConfigPath))
             {
                 File.Delete(Paths.BackupConfigPath);
             }
             Console.WriteLine("Program configuration files has been deleted \r\n now we are goning to shutdown your PC");
         }
     }
 }