/// <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); }
public ArchiveJobThread(ArchiveJob job) { _j = job; //_j.Busy = true; _jobber = this; _tmppath = Path.GetTempPath(); }
/// <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); }
/// <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(); }
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); } }
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; }
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; } }
/// <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; // } //} }