/// <summary> /// set defaults assuming no parent. /// </summary> private void SetDefaults() { this.alreadyCreated = false; currentName = originalName = string.Empty; this.enabled = true; this.frequencyType = FrequencyTypes.Weekly; //SQL2K default value this.startDate = DateTime.Now; this.startTime = TimeSpan.Zero; this.endDate = JobScheduleData.MaxAgentDateValue; this.endTime = JobScheduleData.MaxAgentTimeValue; this.frequencyInterval = 1; // sunday, SQL2K default value this.frequencyRecurranceFactor = 1; this.frequencyRelativeInterval = 0; this.frequencySubDayInterval = 0; this.frequencySubDayTypes = 0; this.id = -1; }
/// <summary> /// setup internal members based upon a JobSchedule object. /// </summary> /// <param name="source"></param> private void LoadData(JobSchedule source) { currentName = originalName = source.Name; this.urn = source.Urn; this.alreadyCreated = true; this.enabled = source.IsEnabled; this.frequencyType = source.FrequencyTypes; this.startDate = source.ActiveStartDate; this.startTime = source.ActiveStartTimeOfDay; this.endDate = source.ActiveEndDate; this.endTime = source.ActiveEndTimeOfDay; this.frequencyInterval = source.FrequencyInterval; this.frequencyRecurranceFactor = source.FrequencyRecurrenceFactor; this.frequencyRelativeInterval = source.FrequencyRelativeIntervals; this.frequencySubDayInterval = source.FrequencySubDayInterval; this.frequencySubDayTypes = source.FrequencySubDayTypes; // If this JobSchedule object hasn't been Created yet, // then accessing the ID will fail. try { this.id = source.ID; } catch (Microsoft.SqlServer.Management.Smo.PropertyNotSetException) { this.alreadyCreated = false; } }
private string GetxAxesCallback(FrequencyTypes frequency) { var sb = new StringBuilder("function (value, index, values)"); sb.Append("{if (value == 0) { return 'Now'; } if (value > 0) {value = -1 * value;}"); sb.Append($" return value + ' {GetUnitString(frequency)}';"); sb.Append('}'); return(sb.ToString()); }
protected void LoadGraph( int monitorCommandId, int agentGrpId, FrequencyTypes selectedFrequency) { var chartConfig = CreateServerConfiguration( monitorCommandId, selectedFrequency, agentGrpId); chartConfigStringForDay = chartConfig?.MakeChart(); }
/// <summary> /// set default values that the schedule dialog would show /// </summary> public void SetDefaults() { this.ActiveEndDate = ConvertDateTimeToInt(JobScheduleData.MaxAgentDateValue); this.ActiveEndTimeOfDay = EndOfDay; this.ActiveStartDate = ConvertDateTimeToInt(DateTime.Now); this.ActiveStartTimeOfDay = 0; this.FrequencyInterval = 0; this.FrequencyRecurrenceFactor = 1; this.frequencyRelativeIntervals = FrequencyRelativeIntervals.First; this.FrequencySubDayInterval = 0; this.frequencySubDayTypes = FrequencySubDayTypes.Unknown; this.frequencyTypes = FrequencyTypes.Weekly; this.isEnabled = true; this.ID = -1; }
private int GetMaxUnits(FrequencyTypes frequency) { int numOfTicks; switch (frequency) { case FrequencyTypes.Minutes: numOfTicks = 60; break; case FrequencyTypes.Hours: numOfTicks = 24; break; default: numOfTicks = 30; break; } return(numOfTicks); }
private String GetUnitString(FrequencyTypes frequency) { var unitStr = ""; switch (frequency) { case FrequencyTypes.Minutes: unitStr = "min"; break; case FrequencyTypes.Hours: unitStr = "hour"; break; case FrequencyTypes.Days: unitStr = "day"; break; } return(unitStr); }
internal static string ToSerializedValue(this FrequencyTypes value) { switch (value) { case FrequencyTypes.Minute: return("Minute"); case FrequencyTypes.Hour: return("Hour"); case FrequencyTypes.Day: return("Day"); case FrequencyTypes.Week: return("Week"); case FrequencyTypes.Month: return("Month"); } return(null); }
public AnalyseEverythingViewModel(AnalyserViewModel parent) : base(parent, "Analyse Everything") { ObservableCollection <AnalyseEverythingBaseViewModel> analysisMethods = new ObservableCollection <AnalyseEverythingBaseViewModel>(); foreach (MethodBase method in parent.AnalysisMethods) { if (method is NoseDisplacementViewModel || method is WhiskerFrequencyViewModel || method is WhiskerMeanOffsetViewModel || method is WhiskerAmplitudeViewModel || method is WhiskerProtractionRetractionViewModel) { analysisMethods.Add(new AnalyseEverythingBaseViewModel(this, method)); } } AnalysisMethods = analysisMethods; ItemsToAnalyse = new ObservableCollection <AnalyseEverythingBaseViewModel>(); MethodControl = new AnalyseEverythingView() { DataContext = this, }; ShowFrameSlider = false; ObservableCollection <AngleTypeBase> angleOptions = new ObservableCollection <AngleTypeBase>(); angleOptions.Add(new CenterLineViewModel()); angleOptions.Add(new VerticalViewModel()); angleOptions.Add(new HorizontalViewModel()); AngleOptions = angleOptions; SelectedAngleOption = AngleOptions.First(); ObservableCollection <FrequencyTypeBaseViewModel> frequencyTypes = new ObservableCollection <FrequencyTypeBaseViewModel>(); frequencyTypes.Add(new AutocorrelogramViewModel()); frequencyTypes.Add(new DiscreteFourierTransformViewModel()); FrequencyTypes = frequencyTypes; SelectedFrequencyType = FrequencyTypes.First(); Initialise(); }
public void ProcessHistoryByFrequency( MonitorValue monitorValue, DateTime dateTime, FrequencyTypes frequency) { DateTime dateStart; var monitorDb = new MonitorDb(); monitorDb.ConvertFrequencyToSubtractHrs(dateTime, frequency, out dateStart); bool isEntryPresentinDb = monitorDb.isEntryPresent(monitorValue, dateStart, frequency); if (!isEntryPresentinDb) { int frequencyToAvgEntries; switch (frequency) { case FrequencyTypes.Hours: frequencyToAvgEntries = 0; monitorValue.Value = monitorDb.GetAverageValue( monitorValue, frequencyToAvgEntries); break; case FrequencyTypes.Days : frequencyToAvgEntries = 1; monitorValue.Value = monitorDb.GetAverageValue( monitorValue, frequencyToAvgEntries); break; default: throw new Exception("frequency is not supported"); } monitorDb.InsertHistory(monitorValue, dateStart, frequency); } }
private ChartConfiguration CreateServerConfiguration( int monitorCommandId, FrequencyTypes frequency, int agentGroupId) { var charts = (new MonitorDb()).GetChart( monitorCommandId, frequency, agentGroupId); //var unitStr = GetUnitString(frequency); if ((charts?.Count ?? 0) == 0) { lblEmptyData.Visible = true; return(null); } var dataSets = new List <DataSetItem>(); try { for (int i = 0; i < charts.Count; i++) { var chart = charts[i]; var colorCount = LibChart.Util.GetColors().Count; var dataSetItem = new DataSetItem() { Label = chart.AgentName, Data = chart.ReverseChartPointValues, BorderWidth = 1, BackgroundColor = LibChart.Util.GetColors(i % colorCount), BorderColor = LibChart.Util.GetColors()[i % colorCount], Fill = false }; dataSets.Add(dataSetItem); } var unit = _monitorCommands .Find(x => x.MonitorCommandId == monitorCommandId).Unit; var xAxesCallback = GetxAxesCallback(frequency); var units = GetMaxUnits(frequency); var xAxesTicks = new Ticks() { Display = true, BeginAtZero = true, Max = units, MaxTicksLimit = 12, Callback = (new JRaw(xAxesCallback)) }; var xAxesTicksItem = new TicksItem() { ticks = xAxesTicks }; var yAxesCallback = $@"function (value, index, values) {{ return value + ' {unit}'; }}"; var yAxesTicks = new Ticks() { Callback = new JRaw(yAxesCallback) }; var yAxesTicksItem = new TicksItem() { ticks = yAxesTicks }; var chartConfig = new ChartConfiguration { Type = ChartType.line.GetChartType(), Data = { Labels = charts[0] .ReverseChartPointMinutes .ConvertAll <string>(x => x.ToString()), Datasets = dataSets }, Options = { SpanGaps = true, Title = { Text = ddlMonitorCommands.SelectedItem.Text }, Scales = new Scales() { XAxes = new List <TicksItem>() { xAxesTicksItem }, YAxes = new List <TicksItem>() { yAxesTicksItem } } } }; return(chartConfig); } catch (Exception ex) { throw new Exception($"Exception:{ex.Message}"); } }
private ChartConfiguration CreateServerConfiguration(int monitorCommandId, FrequencyTypes frequency) { var charts = (new MonitorDb()).GetChart(monitorCommandId, frequency, -1); if ((charts?.Count ?? 0) == 0) { return(null); } var unit = _monitorCommands .Find(x => x.MonitorCommandId == monitorCommandId).Unit; var dataSets = new List <DataSetItem>(); for (var i = 0; i < charts.Count; i++) { var chart = charts[i]; var colorCount = LibChart.Util.GetColors().Count; var dataSetItem = new DataSetItem() { Label = chart.AgentName, Data = chart.ReverseChartPointValues, BorderWidth = 1, BackgroundColor = LibChart.Util.GetColors(i % colorCount), BorderColor = LibChart.Util.GetColors()[i % colorCount], Fill = false }; dataSets.Add(dataSetItem); } var xAxesCallback = @"function (value, index, values) { if (value > 0) { value = -1 * value;} return value + ' min'; }"; var xAxesTicks = new Ticks() { Display = true, BeginAtZero = true, Max = 24, MaxTicksLimit = 12, Callback = (new JRaw(xAxesCallback)) }; var xAxesTicksItem = new TicksItem() { ticks = xAxesTicks }; var yAxesCallback = $@"function (value, index, values) {{ return value + ' {unit}'; }}"; var yAxesTicks = new Ticks() { Callback = new JRaw(yAxesCallback) }; var yAxesTicksItem = new TicksItem() { ticks = yAxesTicks }; var chartConfig = new ChartConfiguration { Type = ChartType.line.GetChartType(), Data = { Labels = charts[0] .ChartPointMinutes .ConvertAll <string>(x => x.ToString()), Datasets = dataSets }, Options = { Title = { Text = ddlMonitorCommands.SelectedItem.Text }, Scales = new Scales() { XAxes = new List <TicksItem>() { xAxesTicksItem }, YAxes = new List <TicksItem>() { yAxesTicksItem } } } }; return(chartConfig); }
/// <summary> /// 创建包含步骤和计划的作业,返回 string jobid /// </summary> /// <param name="KeyId">对象ID</param> /// <returns>返回 string</returns> public string CreateBilling(string KeyId, string JobType, string KillJobID) { try { #region 定义变量 //数据库名称 string strDatabaseName = string.Empty; //作业名称 string strJobName = string.Empty; //作业ID string strJobID = string.Empty; //作业说明 string strDescription = string.Empty; //开始时间 DateTime dtStartDate = System.DateTime.Now; //计划频率,Daily:每天、Weekly:每周、Monthly:每月、Run Once:只运行一次 FrequencyTypes FrequencyType = FrequencyTypes.Daily; //开始运行时间 如:10:30:00 string strRunStartDate = string.Empty; //结束运行时间,如:11:05:00 string strRunEndDate = string.Empty; //数据库服务名 string strSQLServer = string.Empty; //数据库登录用户 string strUser = string.Empty; //数据库登录密码 string strPassword = string.Empty; //时 int hours = 0; //分 int minutes = 0; //秒 int seconds = 0; //命令行 string JobCommandString = string.Empty; vSchedulerEmailBackup vSchedulerEmailBackupObj = null; #endregion //返回vSchedulerEmailBackup 对象,根据id查询 vSchedulerEmailBackupObj = this.FindvSchedulerEmailBackupById(KeyId); if (vSchedulerEmailBackupObj != null) { #region 变量赋值 //strDatabaseName = "ServiceDirectDB"; strDatabaseName = this.GetConfig("strDatabaseName"); strJobName = vSchedulerEmailBackupObj.TaskName; if (vSchedulerEmailBackupObj.JobID != null) { strJobID = vSchedulerEmailBackupObj.JobID.ToString(); } //描述:保存的是KillJob的ID strDescription = KillJobID; dtStartDate = Convert.ToDateTime(vSchedulerEmailBackupObj.StartTime); switch (vSchedulerEmailBackupObj.ScheduleType) { case "Daily": FrequencyType = FrequencyTypes.Daily; break; case "Run Once": FrequencyType = FrequencyTypes.OneTime; break; } DateTime dtRunOnlyStart = Convert.ToDateTime(vSchedulerEmailBackupObj.RunOnlyStart); DateTime dtRunOnlyEnd = Convert.ToDateTime(vSchedulerEmailBackupObj.RunOnlyEnd); strRunStartDate = dtRunOnlyStart.ToLongTimeString(); strRunEndDate = dtRunOnlyEnd.ToLongTimeString(); //开始运行时间 时:分:秒: hours = dtRunOnlyStart.Hour; minutes = dtRunOnlyStart.Minute; seconds = dtRunOnlyStart.Second; //获取自定义config的值 strSQLServer = this.GetConfig("strSQLServer"); strUser = this.GetConfig("strUser"); strPassword = this.GetConfig("strPassword"); #endregion #region 创建作业 ServiceDirectDBEntities objDB = new ServiceDirectDBEntities(); //获取数据库名 string strdatabase = objDB.Connection.Database; //获取数据库服务器名 string strDataSource = objDB.Connection.DataSource; ServerConnection conn = null; Server myServer = null; conn = new ServerConnection(strSQLServer, strUser, strPassword); myServer = new Server(conn); //调用删除Billing 的Job //DeleteJob(strJobID); Job jb = new Job(myServer.JobServer, strJobName); jb.Description = strDescription; //更改JOB状态 if (JobType == "enable") { jb.IsEnabled = true; } switch (JobType) { case "enable": jb.IsEnabled = true; break; case "disable": jb.IsEnabled = false; break; case "Insert": jb.IsEnabled = true; break; } //创建JOB jb.Create(); #endregion 创建作业 if (jb.JobID != null) { //获取命令行 JobCommandString = this.GetJobCommandString(vSchedulerEmailBackupObj, KeyId, jb); } #region 作业步骤 Steps steps = new Steps(); //创建步骤 steps.CreateStep(jb, strDatabaseName, JobCommandString, strRunEndDate); #endregion 作业步骤 #region 作业计划属性 JobSchedule jbsch = new JobSchedule(jb, "ScheduleBilling"); //计划频率,每几天一次 jbsch.FrequencyTypes = FrequencyType; if (vSchedulerEmailBackupObj.ScheduleType.Equals("Daily")) { //执行间隔 (天) jbsch.FrequencyInterval = 1; //当天只执行一次 jbsch.FrequencySubDayTypes = FrequencySubDayTypes.Once; } if (strRunStartDate != string.Empty) { //开始执行时间 jbsch.ActiveStartTimeOfDay = new TimeSpan(hours, minutes, seconds); } //持续时间 if (dtStartDate != null) { //开始时间 jbsch.ActiveStartDate = dtStartDate; } else { jbsch.ActiveStartDate = DateTime.Now; } //创建SQL代理实例的作业调度 jbsch.Create(); jb.ApplyToTargetServer(myServer.JobServer.Name); //创建成功后立刻执行一次开始 //jb.Start(); //创建成功后立刻执行一次结束 #endregion 作业计划属性 //返回作业GUID return(jb.JobID.ToString()); } else { return(""); } } catch (Exception) { return(""); } }