private void CheckTimeOriginParam(TimeOriginViewModel timeOrigin) { var timeOriginType = CommUtils.ParseEnum <TimeOriginType>(timeOrigin.TimeOriginType); switch (timeOriginType) { case TimeOriginType.CustomInput: timeOrigin.CustomInput.CheckParam(); break; case TimeOriginType.Loop: timeOrigin.Loop.CheckParam(); break; case TimeOriginType.MetaTask: timeOrigin.PrevMetaTask.CheckParam(); break; case TimeOriginType.TaskSelfTime: timeOrigin.TaskSelfTime.CheckParam(); break; default: break; } }
private void CreateTimeOriginAndDetailOrigin(TimeOriginViewModel timeOriginViewModel) { var timeSeries = m_dbAdapter.TimeSeries.GetByGuid(timeOriginViewModel.TimeSeriesGuid); var timeOriginType = CommUtils.ParseEnum <TimeOriginType>(timeOriginViewModel.TimeOriginType); var instanceId = 0; switch (timeOriginType) { case TimeOriginType.CustomInput: var customInput = new TimeOriginCustomInput(); customInput.TimeSeriesId = timeSeries.Id; customInput.CustomTimeSeries = timeOriginViewModel.CustomInput.CustomTimeList; instanceId = m_dbAdapter.TimeOriginCustomInput.New(customInput).Id; break; case TimeOriginType.Loop: var loop = new TimeOriginLoop(); loop.TimeSeriesId = timeSeries.Id; loop.LoopBegin = DateTime.Parse(timeOriginViewModel.Loop.BeginTime); loop.LoopEnd = DateTime.Parse(timeOriginViewModel.Loop.EndTime); loop.LoopInterval = timeOriginViewModel.Loop.Interval; loop.TimeRuleUnitType = timeOriginViewModel.Loop.RuleUnitType; instanceId = m_dbAdapter.TimeOriginLoop.New(loop).Id; break; case TimeOriginType.MetaTask: var prevMetaTask = m_dbAdapter.MetaTask.GetByGuid(timeOriginViewModel.PrevMetaTask.MetaTaskGuid); var timeOriginMetaTask = new TimeOriginMetaTask(); timeOriginMetaTask.TimeSeriesId = timeSeries.Id; timeOriginMetaTask.MetaTaskTimeType = timeOriginViewModel.PrevMetaTask.MetaTaskTimeType; timeOriginMetaTask.MetaTaskId = prevMetaTask.Id; instanceId = m_dbAdapter.TimeOriginMetaTask.New(timeOriginMetaTask).Id; break; case TimeOriginType.TaskSelfTime: var timeOriginTaskSelfTime = new TimeOriginTaskSelfTime(); timeOriginTaskSelfTime.TimeSeriesId = timeSeries.Id; timeOriginTaskSelfTime.TimeType = timeOriginViewModel.TaskSelfTime.TimeType; timeOriginTaskSelfTime.TimeOriginTimeSeriesGuid = timeOriginViewModel.TaskSelfTime.TimeSeriesGuid; instanceId = m_dbAdapter.TimeOriginTaskSelfTime.New(timeOriginTaskSelfTime).Id; break; default: break; } CreateTimeOrigin(timeSeries.Id, timeOriginViewModel.TimeOriginType, instanceId); }
public ActionResult SaveTimeOrigin(TimeOriginViewModel timeOriginViewModel) { return(ActionUtils.Json(() => { if (timeOriginViewModel != null) { //检查timeOriginViewModel里的参数 CommUtils.AssertHasContent(timeOriginViewModel.TimeSeriesGuid, "TimeSeriesGuid不能为空"); CommUtils.AssertHasContent(timeOriginViewModel.TimeOriginType, "TimeOriginType不能为空"); CheckTimeOriginParam(timeOriginViewModel); CreateTimeOriginAndDetailOrigin(timeOriginViewModel); } return ActionUtils.Success("ok"); })); }
private TimeOriginViewModel GetTimeOriginDetail(string timeSeriesGuid, int timeSeriesId) { var timeOriginViewModel = new TimeOriginViewModel(); var timeOrigin = m_dbAdapter.TimeOrigin.GetByTimeSeriesId(timeSeriesId); var timeOriginType = CommUtils.ParseEnum <TimeOriginType>(timeOrigin.TimeOriginType); timeOriginViewModel.TimeSeriesGuid = timeSeriesGuid; timeOriginViewModel.TimeOriginType = timeOrigin.TimeOriginType; switch (timeOriginType) { case TimeOriginType.CustomInput: var timeOriginCustomInput = m_dbAdapter.TimeOriginCustomInput.GetById(timeOrigin.TimeOriginInstanceId); timeOriginViewModel.CustomInput.CustomTimeList = timeOriginCustomInput.CustomTimeSeries; break; case TimeOriginType.Loop: var timeOriginLoop = m_dbAdapter.TimeOriginLoop.GetById(timeOrigin.TimeOriginInstanceId); timeOriginViewModel.Loop.Interval = timeOriginLoop.LoopInterval; timeOriginViewModel.Loop.BeginTime = timeOriginLoop.LoopBegin.ToString("yyyy-MM-dd"); timeOriginViewModel.Loop.EndTime = timeOriginLoop.LoopEnd.ToString("yyyy-MM-dd"); timeOriginViewModel.Loop.RuleUnitType = timeOriginLoop.TimeRuleUnitType; break; case TimeOriginType.MetaTask: var timeOriginMetaTask = m_dbAdapter.TimeOriginMetaTask.GetById(timeOrigin.TimeOriginInstanceId); var prevMetaTask = m_dbAdapter.MetaTask.GetById(timeOriginMetaTask.MetaTaskId); timeOriginViewModel.PrevMetaTask.MetaTaskGuid = prevMetaTask.Guid; timeOriginViewModel.PrevMetaTask.MetaTaskTimeType = timeOriginMetaTask.MetaTaskTimeType; break; case TimeOriginType.TaskSelfTime: var timeOriginTaskSelfTime = m_dbAdapter.TimeOriginTaskSelfTime.GetById(timeOrigin.TimeOriginInstanceId); timeOriginViewModel.TaskSelfTime.TimeSeriesGuid = timeOriginTaskSelfTime.TimeOriginTimeSeriesGuid; timeOriginViewModel.TaskSelfTime.TimeType = timeOriginTaskSelfTime.TimeType; break; default: break; } return(timeOriginViewModel); }
private List <string> GetTimeListByTimeRuleOrigin(TimeRuleViewModel timeRule, TimeOriginViewModel timeOrigin) { var timeOriginType = CommUtils.ParseEnum <TimeOriginType>(timeOrigin.TimeOriginType); TimeSeriesFactory timeSeriesFactory; var result = new List <string>(); if (timeOriginType == TimeOriginType.CustomInput) { var customTimeList = CommUtils.Split(timeOrigin.CustomInput.CustomTimeList).Select(x => DateTime.Parse(x)); timeSeriesFactory = new TimeSeriesFactory(customTimeList); result = CalculateTimeByTimeRule(timeRule, timeSeriesFactory); } if (timeOriginType == TimeOriginType.Loop) { var startTime = DateTime.Parse(timeOrigin.Loop.BeginTime); var endTime = DateTime.Parse(timeOrigin.Loop.EndTime); var ruleUnitType = CommUtils.ParseEnum <TimeUnit>(timeOrigin.Loop.RuleUnitType); timeSeriesFactory = new TimeSeriesFactory( new DateTime(startTime.Year, startTime.Month, startTime.Day), new TimeStep { Interval = timeOrigin.Loop.Interval, Unit = ruleUnitType }, new DateTime(endTime.Year, endTime.Month, endTime.Day)); result = CalculateTimeByTimeRule(timeRule, timeSeriesFactory); } if (timeOriginType == TimeOriginType.MetaTask) { result = GetTimeListByPrevMetaTask(timeRule, timeOrigin.PrevMetaTask.MetaTaskGuid, timeOrigin.PrevMetaTask.MetaTaskTimeType); } if (timeOriginType == TimeOriginType.TaskSelfTime) { var timeSeries = m_dbAdapter.TimeSeries.GetByGuid(timeOrigin.TaskSelfTime.TimeSeriesGuid); var CurrTimeRule = GetTimeRuleDetail(timeSeries.Id); var CurrTimeOrigin = GetTimeOriginDetail(timeSeries.Guid, timeSeries.Id); var timeList = GetTimeListByTimeRuleOrigin(CurrTimeRule, CurrTimeOrigin).Select(x => DateTime.Parse(x)); timeSeriesFactory = new TimeSeriesFactory(timeList); result = CalculateTimeByTimeRule(timeRule, timeSeriesFactory); } return(result); }