示例#1
0
 /// <summary>
 /// Нужно ли делать Резервирование по переданному расписанию
 /// </summary>
 /// <param name="start">Программа только что запустилась</param>
 private bool needDump(ArchiveJob aj, bool start)
 {
     if (aj.Busy)
     {
         return(false);
     }
     if (aj.ArcAType == ArchiveType.Никогда)
     {
         return(false);
     }
     if (start && aj.ArcAType == ArchiveType.При_Запуске)
     {
         return(true);
     }
     //if (Repeat > 0 && DateCmpNoSec(LastWork.AddHours(Repeat)))
     //    return true;
     if (aj.ArcAType == ArchiveType.Единожды && XTools.DateCmpNoSec(aj.StartTime))
     {
         return(true);
     }
     if (aj.ArcAType == ArchiveType.Ежедневно && XTools.DateCmpTime(aj.StartTime))
     {
         return(true);
     }
     if (aj.ArcAType == ArchiveType.Еженедельно && ((DateTime.Now - aj.StartTime).Days % 7) == 0 && XTools.DateCmpTime(aj.StartTime))
     {
         return(true);
     }
     if (aj.ArcAType == ArchiveType.Ежемесячно && aj.StartTime.Day == DateTime.Now.Day && XTools.DateCmpTime(aj.StartTime))
     {
         return(true);
     }
     return(false);
 }
示例#2
0
 public ArchiveJobThread(ArchiveJob job)
 {
     _j = job;
     //_j.Busy = true;
     _jobber  = this;
     _tmppath = Path.GetTempPath();
 }
示例#3
0
 /// <summary>
 /// Делает резервирование одного расписания
 /// </summary>
 /// <param name="j"></param>
 private void doDump(ArchiveJob j)
 {
     notifyIcon1.ShowBalloonTip(5000, "Резервирование", j.Name, ToolTipIcon.Info);
     ArchiveJobThread.MakeJob(j);
     //if (j.SendToServ)
     //    RabServWorker.SendDump(j);
 }
示例#4
0
        /// <summary>
        /// Делает Резервирование БазыДанных
        /// </summary>
        /// <param name="j">Расписание резервирования</param>
        public static void MakeJob(ArchiveJob j)
        {
            ArchiveJobThread jt = new ArchiveJobThread(j);

            j.Busy = true;
            Thread t = new Thread(jt.Run);

            t.Start();
        }
示例#5
0
        private void btOk_Click(object sender, EventArgs e)
        {
            try {
                cbName.Text = cbName.Text.Replace(ArchiveJobThread.SPACE_REPLACE, '\0');
                if (cbName.Text == "")
                {
                    throw new Exception("Название не должно быть пустым");
                }
                if (cbDataBase.SelectedIndex == -1)
                {
                    throw new Exception("Не выбрана \"Ферма\"");
                }
                ArchiveJob aj;
                if (btAdd.Checked)
                {
                    if (isNameExists())
                    {
                        throw new Exception("Расписание с таким именем уже существует");
                    }

                    aj = new ArchiveJob(Guid.NewGuid().ToString(), cbName.Text, _ds_dict[cbDataBase.SelectedIndex], tbDumpPath.Text, getDT().ToLongDateString(),
                                        cbArcType.SelectedIndex, (int)nudCountLimit.Value, (int)nudSizeLimit.Value, chServerSend.Checked, (int)nudSrvDump.Value);
                    _rnc.ArchiveJobs.Add(aj);
                }
                else if (btEdit.Checked)
                {
                    aj            = _aj_dict[_sInd];
                    aj.Name       = cbName.Text;
                    aj.DataSrc    = _ds_dict[cbDataBase.SelectedIndex];
                    aj.DumpPath   = tbDumpPath.Text;
                    aj.StartTime  = getDT();
                    aj.ArcType    = cbArcType.SelectedIndex;
                    aj.CountLimit = (int)nudCountLimit.Value;
                    aj.SizeLimit  = (int)nudSizeLimit.Value;
                    aj.SendToServ = chServerSend.Checked;
                }
                //RabnetConfig.SaveDataSources();
                btCancel_Click(null, null);
                init();
            } catch (Exception exc) {
                MessageBox.Show(exc.Message);
            }
        }
示例#6
0
        private void updateSelectedAJ()
        {
            ArchiveJob aj = _aj_dict[cbName.SelectedIndex];

            for (int i = 0; i < _ds_dict.Count; i++)
            {
                if (aj.DataSrc == _ds_dict[i])
                {
                    cbDataBase.SelectedIndex = i;
                }
            }
            tbDumpPath.Text         = aj.DumpPath;
            nudCountLimit.Value     = aj.CountLimit;
            nudSizeLimit.Value      = aj.SizeLimit;
            cbArcType.SelectedIndex = aj.ArcType;
            dtpDate.Value           =
                dtpTime.Value       = aj.StartTime == DateTime.MinValue ? DateTime.Now : aj.StartTime;
            cbWeekDay.SelectedIndex = (int)aj.StartTime.DayOfWeek == 0 ? 6 : (int)aj.StartTime.DayOfWeek - 1;
            aj.SendToServ           = chServerSend.Checked;
        }
示例#7
0
        private void cbJobName_SelectedIndexChanged(object sender, EventArgs e)
        {
            cbDataBase.Items.Clear();
            listView1.Items.Clear();

            foreach (ArchiveJob j in Options.Inst.Jobs)
            {
                if (j.Name == cbJobName.Text)
                {
                    _jj = j;
                    //if (j.DataSrc == DataSource.AllDataBases) //TODO вернуть
                    //{
                    //    foreach (DataSource db in Options.Get().Databases)
                    //        cbDataBase.Items.Add(db.Name);
                    //}
                    //else
                    cbDataBase.Items.Add(j.DataSrc.Name);
                }
            }
            if (cbDataBase.Items.Count != 0)
            {
                cbDataBase.SelectedIndex = 0;
            }
        }
示例#8
0
        /// <summary>
        /// Заполняет таблицу имеющимися Дампами
        /// </summary>
        /// <param name="j"></param>
        /// <param name="db">имя Бд</param>
        private void FillList(ArchiveJob j, String db)
        {
            listView1.Items.Clear();
            DirectoryInfo di         = new DirectoryInfo(j.DumpPath);
            string        searchName = j.Name.Replace(' ', ArchiveJobThread.SPACE_REPLACE).Replace("_", ArchiveJobThread.UNDERSCORE_REPLACE) + "_" + db.Replace(' ', ArchiveJobThread.SPACE_REPLACE).Replace("_", ArchiveJobThread.UNDERSCORE_REPLACE);

            //List<sDump> servDumps = null;
            try {
                //sDump[] dmps = RabServWorker.ReqSender.ExecuteMethod(MethodName.GetDumpList).Value as sDump[];
                //servDumps = new List<sDump>(dmps);
            } catch (Exception exc) {
                log.Warn(exc);
            }


            int      idx;
            DateTime dtm;

            foreach (FileInfo fi in di.GetFiles())
            {
                if (Path.GetFileName(fi.FullName).StartsWith(searchName))
                {
                    String[] nm = ArchiveJobThread.ParseDumpName(fi.Name);
                    dtm = DateTime.Parse(String.Format("{0}-{1}-{2} {3}:{4}:{5}", nm[2], nm[3], nm[4], nm[5].Substring(0, 2), nm[5].Substring(2, 2), nm[5].Substring(4, 2)));
                    idx = 0;
                    for (int i = 0; i < listView1.Items.Count; i++)
                    {
                        if (DateTime.Parse(listView1.Items[i].SubItems[0].Text) > dtm)
                        {
                            idx++;
                        }
                    }
                    ListViewItem li = listView1.Items.Insert(idx, dtm.ToShortDateString() + " " + dtm.ToLongTimeString());
                    li.SubItems.Add(fi.Name);

                    ///Если такой дамп имеется на сервере, то окрашиваем строку в зеленый
                    //if (servDumps != null && servDumps.Count > 0) {
                    //    for (int i = 0; i < servDumps.Count; i++) {
                    //        if (servDumps[i].FileName == fi.Name) {
                    //            li.ForeColor = System.Drawing.Color.Green;
                    //            servDumps.RemoveAt(i);
                    //            break;
                    //        }
                    //    }
                    //}
                }
            }
            ///Добавляем файлы которые имеются только на сервере
            //if (servDumps != null && servDumps.Count > 0 /*&& j.DataSrc != DataBase.AllDataBases*/) {
            //    foreach (sDump dmp in servDumps) {
            //        String[] nm = ArchiveJobThread.ParseDumpName(dmp.FileName);
            //        dtm = DateTime.Parse(String.Format("{0}-{1}-{2} {3}:{4}:{5}", nm[2], nm[3], nm[4], nm[5].Substring(0, 2), nm[5].Substring(2, 2), nm[5].Substring(4, 2)));
            //        idx = 0;
            //        for (int i = 0; i < listView1.Items.Count; i++) {
            //            if (DateTime.Parse(listView1.Items[i].SubItems[0].Text) > dtm)
            //                idx++;
            //        }
            //        ListViewItem li = listView1.Items.Insert(idx, dtm.ToShortDateString() + " " + dtm.ToLongTimeString());
            //        li.SubItems.Add(dmp.FileName);
            //        li.ForeColor = System.Drawing.Color.BlueViolet;
            //    }
            //}
        }