Пример #1
0
        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;
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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");
            }));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }