示例#1
0
        private void ValidateIfClose()
        {
            var dateSeparator = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DateSeparator;

            var FileLoadSettings = new IniFile(ConfigFilepath);

            string DateValue1 = "";
            string DateValue2 = "";

            try
            {
                DateValue1 = FileLoadSettings.Read("LastDelete", "SQL");
            }
            catch { }
            try
            {
                DateValue2 = FileLoadSettings.Read("LastDelete", "DataAnalysis");
            }
            catch { }

            int daysToDelete = 0;

            try
            {
                daysToDelete = Convert.ToInt32(FileLoadSettings.Read("WeeksToDeleteLocalData", "DataAnalysis"));
                daysToDelete = daysToDelete * 7;
            }
            catch
            {
                daysToDelete = 21;
            }


            if (DateValue1 != "" && DateValue2 != "")
            {
                if (DateValue1 != "" && DateValue2 == "")
                {
                    DateValue1 = DateValue1.Replace(".", dateSeparator);
                    DateValue1 = DateValue1.Replace("\\", dateSeparator);
                    DateValue1 = DateValue1.Replace("/", dateSeparator);
                    DateValue1 = DateValue1.Replace("-", dateSeparator);
                    DateTime date1 = DateTime.Parse(DateValue1);

                    DateTime currentDateNow = DateTime.Now;
                    var      days           = (currentDateNow - date1).TotalDays;
                    if (days <= daysToDelete)
                    {
                        Application.Exit();
                    }
                }
                else if (DateValue2 != "" && DateValue1 == "")
                {
                    DateValue2 = DateValue2.Replace(".", dateSeparator);
                    DateValue2 = DateValue2.Replace("\\", dateSeparator);
                    DateValue2 = DateValue2.Replace("/", dateSeparator);
                    DateValue2 = DateValue2.Replace("-", dateSeparator);
                    DateTime date2 = DateTime.Parse(DateValue2);

                    DateTime currentDateNow = DateTime.Now;
                    var      days           = (currentDateNow - date2).TotalDays;
                    if (days <= daysToDelete)
                    {
                        Application.Exit();
                    }
                }
                else if (DateValue1 != "" && DateValue2 != "")
                {
                    DateValue1 = DateValue1.Replace(".", dateSeparator);
                    DateValue1 = DateValue1.Replace("\\", dateSeparator);
                    DateValue1 = DateValue1.Replace("/", dateSeparator);
                    DateValue1 = DateValue1.Replace("-", dateSeparator);
                    DateTime date1 = DateTime.Parse(DateValue1);

                    DateValue2 = DateValue2.Replace(".", dateSeparator);
                    DateValue2 = DateValue2.Replace("\\", dateSeparator);
                    DateValue2 = DateValue2.Replace("/", dateSeparator);
                    DateValue2 = DateValue2.Replace("-", dateSeparator);
                    DateTime date2 = DateTime.Parse(DateValue2);

                    if (date1 > date2)
                    {
                        DateTime currentDateNow = DateTime.Now;
                        var      days           = (currentDateNow - date1).TotalDays;
                        if (days <= daysToDelete)
                        {
                            Application.Exit();
                        }
                    }
                    else
                    {
                        DateTime currentDateNow = DateTime.Now;
                        var      days           = (currentDateNow - date2).TotalDays;
                        if (days <= daysToDelete)
                        {
                            Application.Exit();
                        }
                    }
                }
            }
        }
示例#2
0
        private void button1_Click(object sender, EventArgs e)
        {
            string conString     = "";
            bool   error         = true;
            bool   haveDataBases = false;
            string sqlInstance   = "";

            var sqlInstanceID = 0;

            foreach (var item in listBoxSQLInstance.SelectedItems)
            {
                sqlInstance = item.ToString();
                sqlInstanceID++;
            }

            try
            {
                sqlInstance = sqlInstance.Replace("- ", "");

                // Open connection to the database
                conString = string.Format("Server={0};Database={1};Integrated Security=True;MultipleActiveResultSets=true; timeout=5",
                                          sqlInstance, "master");

                string query = "SELECT name from sys.databases Where name not in ('tempdb', 'msdb', 'model', 'master')";
                using (SqlConnection con = new SqlConnection(conString))
                {
                    con.Open();

                    // Set up a command with the given query and associate
                    // this with the current connection.
                    using (SqlCommand cmd = new SqlCommand(query, con))
                    {
                        using (IDataReader dr = cmd.ExecuteReader())
                        {
                            error = false;
                            while (dr.Read())
                            {
                                haveDataBases = true;
                            }
                        }
                    }
                }
            }
            catch
            {
                error = true;
                MessageBox.Show("Instância desligada!");
            }

            if (!error)
            {
                if (haveDataBases)
                {
                    var FileWriteSettings = new IniFile(Form1.ConfigFilepath);
                    FileWriteSettings.Write("DefaultInstace", sqlInstanceID.ToString(), "SQL");
                    FileWriteSettings = null;

                    FormDeleteSQLDataBases.ConnectionString = conString;
                    FormDeleteSQLDataBases formDeleteSQLDataBases = new FormDeleteSQLDataBases();
                    formDeleteSQLDataBases.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Instância sem base de dados!");
                }
            }
        }
示例#3
0
        private void DeleteLocalData()
        {
            int FilesLongerThanXdays = Convert.ToInt32(numericWeeks.Value) * 7;

            var path = TxtFolderPath.Text + "\\";

            DirectoryInfo di = new DirectoryInfo(path);

            DirectoryInfo[] directories = di.GetDirectories();

            string deletationSuccessMessage = "";
            string deletationErrorMessage   = "";

            foreach (var directory in directories)
            {
                DateTime currentDateNow = Convert.ToDateTime(DateTime.Now.AddDays(-FilesLongerThanXdays).ToString("dd-MM-yyyy"));
                DateTime modification;

                if (optCreateDate.Checked)
                {
                    modification = Convert.ToDateTime(Directory.GetCreationTime(di + directory.Name).ToString("dd-MM-yyyy"));
                }
                else
                {
                    modification = Convert.ToDateTime(Directory.GetLastWriteTime(di + directory.Name).ToString("dd-MM-yyyy"));
                }

                if (modification <= currentDateNow)
                {
                    DirectoryInfo   di_   = new DirectoryInfo(directory.FullName);
                    DirectoryInfo[] direc = di_.GetDirectories();

                    foreach (FileInfo file in di_.GetFiles())
                    {
                        FileInfo _file = new FileInfo(di_.FullName + @"\" + file);
                        if (IsFileLocked(_file))
                        {
                            deletationErrorMessage += "- Ficheiro «" + file + "» em " + file.DirectoryName + Environment.NewLine;
                            break;
                        }

                        try
                        {
                            DeleteFileOrFolder(di + @"\" + file);
                            //file.Delete();
                            deletationSuccessMessage += "- Ficheiro «" + file + "» em " + file.DirectoryName + Environment.NewLine + Environment.NewLine;
                        }
                        catch
                        {
                            deletationErrorMessage += "- Ficheiro «" + file + "» em " + file.DirectoryName + Environment.NewLine + Environment.NewLine;
                        }
                    }
                    foreach (DirectoryInfo dir in direc)
                    {
                        try
                        {
                            DeleteFileOrFolder(di_ + @"\" + dir);
                            //dir.Delete(true);
                            deletationSuccessMessage += "- Pasta «" + dir + "» em " + dir.FullName + Environment.NewLine + Environment.NewLine;
                        }
                        catch
                        {
                            deletationErrorMessage += "- Pasta «" + dir + "» em " + dir.FullName + Environment.NewLine + Environment.NewLine;
                        }
                    }
                    DeleteFileOrFolder(di + @"\" + directory);
                }
            }

            if (deletationErrorMessage != "")
            {
                MessageBox.Show("Ocorreram erros na eliminação!" + Environment.NewLine + "Consulte o log!");
            }

            Log log = new Log();

            log.WriteInFile(deletationSuccessMessage, false, false);
            log.WriteInFile(deletationErrorMessage, false, true);
            log = null;
            deletationSuccessMessage = "";
            deletationErrorMessage   = "";

            foreach (FileInfo file in di.GetFiles())
            {
                FileInfo _file = new FileInfo(di.FullName + @"\" + file);
                if (IsFileLocked(_file))
                {
                    deletationErrorMessage += "- Ficheiro «" + file + "» em " + file.DirectoryName + Environment.NewLine;
                    break;
                }

                string   filePath       = di + @"\" + file.ToString();
                DateTime currentDateNow = Convert.ToDateTime(DateTime.Now.AddDays(-FilesLongerThanXdays).ToString("dd-MM-yyyy"));
                DateTime modification;

                if (optCreateDate.Checked)
                {
                    modification = Convert.ToDateTime(File.GetCreationTime(filePath).ToString("dd-MM-yyyy"));
                }
                else
                {
                    modification = Convert.ToDateTime(File.GetLastWriteTime(filePath).ToString("dd-MM-yyyy"));
                }

                if (modification <= currentDateNow)
                {
                    try
                    {
                        DeleteFileOrFolder(filePath);
                        deletationSuccessMessage += "- Ficheiro «" + file + "» em " + file.DirectoryName + Environment.NewLine;
                    }
                    catch
                    {
                        deletationErrorMessage += "- Ficheiro «" + file + "» em " + file.DirectoryName + Environment.NewLine;
                    }
                }
            }

            log = new Log();
            log.WriteInFile(deletationSuccessMessage, false, false);
            log.WriteInFile(deletationErrorMessage, false, true);
            log = null;


            var FileWriteSettings = new IniFile(ConfigFilepath);

            FileWriteSettings.Write("LastDelete", DateTime.Now.ToShortDateString(), "DataAnalysis");
            FileWriteSettings = null;

            lblLastLocalDelete.Text = "Última eliminação: " + DateTime.Now.ToShortDateString();
        }
示例#4
0
        private void SetData()
        {
            var FileLoadSettings = new IniFile(ConfigFilepath);

            try
            {
                string SqlInstance = FileLoadSettings.Read("SqlInstance", "General");

                if (SqlInstance != "")
                {
                    string[] values = SqlInstance.Split('|');
                    foreach (var s in values)
                    {
                        listBoxSQLInstance.Items.Add("- " + Environment.MachineName + @"\" + s);
                    }
                }
            }
            catch
            {
            }

            var lastEliminationSQL = "";

            try
            {
                lastEliminationSQL = FileLoadSettings.Read("LastDelete", "SQL");

                if (lastEliminationSQL == "")
                {
                    lastEliminationSQL = " --- ";
                }
            }
            catch
            {
                lastEliminationSQL = " --- ";
            }

            lblLastElimination.Text = "Última eliminação: " + lastEliminationSQL;

            try
            {
                var TaskExist = FileLoadSettings.Read("TaskExist", "General");

                if (TaskExist != "1")
                {
                    CreateWindowsTask();
                }
            }
            catch (Exception ex)
            {
            }

            try
            {
                var DefaultInstace = Convert.ToInt32(FileLoadSettings.Read("DefaultInstace", "SQL"));
                listBoxSQLInstance.SetSelected(DefaultInstace, true);
            }
            catch (Exception ex)
            {
            }

            try
            {
                var weeksToDel = Convert.ToInt16(FileLoadSettings.Read("WeeksToDeleteLocalData", "DataAnalysis"));
                numericWeeks.Value = weeksToDel;
            }
            catch (Exception ex)
            {
                numericWeeks.Value = 3;
            }

            try
            {
                var folderPath = FileLoadSettings.Read("DataFolder", "DataAnalysis");

                bool existsFolder = System.IO.Directory.Exists(folderPath);
                if (existsFolder)
                {
                    TxtFolderPath.Text = folderPath;
                }
                else
                {
                    TxtFolderPath.Text = "";
                }
            }
            catch (Exception ex)
            {
                TxtFolderPath.Text = "";
            }


            var lastElimination = "";

            try
            {
                lastElimination = FileLoadSettings.Read("LastDelete", "DataAnalysis");

                if (lastElimination == "")
                {
                    lastElimination = " --- ";
                }
            }
            catch
            {
                lastElimination = " --- ";
            }
            lblLastLocalDelete.Text = "Última eliminação: " + lastElimination;
        }