コード例 #1
0
        public static void Create(TaskTrigger trigger)
        {
            var user = WindowsIdentity.GetCurrent().Name;

            using (var ts = new TaskService())
            {
                var td = ts.NewTask();
                td.RegistrationInfo.Description = "Disables Nvidia telemetry services and tasks on startup.";
                td.Principal.UserId             = user;
                td.Principal.LogonType          = TaskLogonType.InteractiveToken;
                td.Principal.RunLevel           = TaskRunLevel.Highest;
                if (trigger == TaskTrigger.WindowsLogin)
                {
                    td.Triggers.Add(new LogonTrigger());
                }
                if (trigger == TaskTrigger.Daily)
                {
                    var now           = DateTime.Today;
                    var startDateTime = new DateTime(now.Year, now.Month, now.Day, 12, 0, 0);
                    var dt            = new DailyTrigger
                    {
                        StartBoundary = startDateTime,
                        Enabled       = true,
                        DaysInterval  = 1,
                        Repetition    = { Interval = TimeSpan.FromHours(24) }
                    };

                    td.Triggers.Add(dt);
                }
                td.Actions.Add(new ExecAction(Assembly.GetExecutingAssembly().Location, Program.StartupParamSilent));
                ts.RootFolder.RegisterTaskDefinition(TaskName, td);
            }
        }
コード例 #2
0
ファイル: RobotFrm.cs プロジェクト: cupid0426/MyProject
 private void dataGridView1_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
 {
     if (e.ColumnIndex == 0)
     {
         int taskID = (int)dataGridView1.Rows[e.RowIndex].Cells["taskID"].Value;
         if (checkState.ContainsKey(taskID))
         {
             e.Value = checkState[taskID];
         }
         else
         {
             e.Value = false;
         }
     }
     if (e.ColumnIndex == 5)
     {
         string      interval = dataGridView1.Rows[e.RowIndex].Cells["interval"].Value.ToString();
         string      trigger  = dataGridView1.Rows[e.RowIndex].Cells["trigger"].Value.ToString();
         TaskTrigger t        = (TaskTrigger)Enum.Parse(typeof(TaskTrigger), trigger);
         if (t == TaskTrigger.Once)
         {
             e.Value = "无";
         }
         else
         {
             e.Value = string.Format("每{0}{1}", interval, CommonUtil.GetEnumDescription(t));
         }
     }
 }
コード例 #3
0
        protected override int OnPropertyGUI()
        {
            int height = base.OnPropertyGUI();

            GUILayout.BeginHorizontal();
            GUILayout.Label("触发方式:", GUILayout.Width(90));
            _trigger = (TaskTrigger)EditorGUILayout.EnumPopup(_trigger);
            GUILayout.EndHorizontal();

            height += 20;

            GUILayout.BeginHorizontal();
            GUILayout.Label("指引时高亮目标:", GUILayout.Width(90));
            _highlighting = EditorGUILayout.Toggle(_highlighting);
            GUILayout.EndHorizontal();

            height += 20;

            GUILayout.BeginHorizontal();
            GUILayout.Label("持续时间:", GUILayout.Width(90));
            _duration = EditorGUILayout.FloatField(_duration);
            GUILayout.EndHorizontal();

            height += 20;

            return(height);
        }
コード例 #4
0
ファイル: Trigger.cs プロジェクト: clamwin/clamwind
 /// <summary>
 /// Internal base constructor for an unbound Trigger.
 /// </summary>
 internal Trigger()
 {
     iTaskTrigger            = null;
     taskTrigger             = new TaskTrigger();
     taskTrigger.TriggerSize = (ushort)Marshal.SizeOf(taskTrigger);
     taskTrigger.BeginYear   = (ushort)DateTime.Today.Year;
     taskTrigger.BeginMonth  = (ushort)DateTime.Today.Month;
     taskTrigger.BeginDay    = (ushort)DateTime.Today.Day;
 }
コード例 #5
0
ファイル: Trigger.cs プロジェクト: clamwin/clamwind
 /// <summary>
 /// Internal constructor which initializes itself from
 /// from an ITaskTrigger interface.
 /// </summary>
 /// <param name="iTrigger">Instance of ITaskTrigger from system task scheduler.</param>
 internal Trigger(ITaskTrigger iTrigger)
 {
     if (iTrigger == null)
     {
         throw new ArgumentNullException("iTrigger", "ITaskTrigger instance cannot be null");
     }
     taskTrigger             = new TaskTrigger();
     taskTrigger.TriggerSize = (ushort)Marshal.SizeOf(taskTrigger);
     iTrigger.GetTrigger(ref taskTrigger);
     iTaskTrigger = iTrigger;
 }
コード例 #6
0
ファイル: RobotTask.cs プロジェクト: cupid0426/MyProject
 public RobotTask(int _id, DateTime _time, string _info, string _num, string _targetName, string _remark, TaskTrigger _trigger, int _interval, DateTime _nextTime)
 {
     taskID       = _id;
     taskTime     = _time;
     taskInfo     = _info;
     targetNum    = _num;
     targetName   = _targetName;
     remark       = _remark;
     trigger      = _trigger;
     interval     = _interval;
     nextTaskTime = _nextTime;
 }
コード例 #7
0
        //procedure ITaskSchedulerButtonOnClick(Sender: TObject);
        //var
        //    Obj, Obj2: IUnknown;
        //    TaskScheduler: ITaskScheduler;
        //    G1, G2: TGUID;
        //    Task: ITask;
        //    iNewTrigger;
        //    TaskTrigger: ITaskTrigger;
        //    TaskTrigger2: TTaskTrigger;
        //    PF: IPersistFile;
        //begin
        //    { Create the main TaskScheduler COM Automation object }
        //    Obj := CreateComObject(StringToGuid(CLSID_TaskScheduler));

        //    { Create the Task COM automation object }
        //    TaskScheduler := ITaskScheduler(Obj);
        //    G1 := StringToGuid(CLSID_Task);
        //    G2 := StringToGuid(IID_Task);
        //    //This will throw an exception if the task already exists
        //    OleCheck(TaskScheduler.NewWorkItem('CodeAutomation2 Test', G1, G2, Obj2));

        //    { Set the task properties }
        //    Task := ITask(Obj2);
        //    OleCheck(Task.SetComment('CodeAutomation2 Test Comment'));
        //    OleCheck(Task.SetApplicationName(ExpandConstant('{srcexe}')));

        //    { Set the task account information }
        //    //Uncomment the following and provide actual user info to get a runnable task
        //    //OleCheck(Task.SetAccountInformation('username', 'password'));

        //    { Create the TaskTrigger COM automation object }
        //    OleCheck(Task.CreateTrigger(iNewTrigger, TaskTrigger));

        //    { Set the task trigger properties }
        //    with TaskTrigger2 do begin
        //        cbTriggerSize := SizeOf(TaskTrigger2);
        //        wBeginYear := 2009;
        //        wBeginMonth := 10;
        //        wBeginDay := 1;
        //        wStartHour := 12;
        //        TriggerType := TASK_TIME_TRIGGER_DAILY;
        //        Type_.Daily.DaysInterval := 1;
        //    end;
        //    OleCheck(TaskTrigger.SetTrigger(TaskTrigger2));

        //    { Save the task }
        //    PF := IPersistFile(Obj2);
        //    OleCheck(PF.Save('', True));

        //    MsgBox('Created a daily task named named ''CodeAutomation2 Test''.' + #13#13 + 'Note: Account information not set so the task won''t actually run, uncomment the SetAccountInfo call and provide actual user info to get a runnable task.', mbInformation, mb_Ok);
        //end;
        void ITaskSchedulerButtonOnClick(TObject Sender)
        {
            // Create the main TaskScheduler COM Automation object
            var Obj = CreateComObject(StringToGuid(CLSID_TaskScheduler));

            // Create the Task COM automation object
            var TaskScheduler = (ITaskScheduler)Obj;
            var G1            = StringToGuid(CLSID_Task);
            var G2            = StringToGuid(IID_Task);

            //This will throw an exception if the task already exists
            OleCheck(TaskScheduler.NewWorkItem("CodeAutomation2 Test", ref G1, ref G2, out var Obj2));

            // Set the task properties
            var Task = (ITask)Obj2; // ITask(Obj2);

            OleCheck(Task.SetComment("CodeAutomation2 Test Comment"));
            OleCheck(Task.SetApplicationName(ExpandConstant(__srcexe)));

            // Set the task account information
            OleCheck(Task.SetAccountInformation("username", "password"));

            // Create the TaskTrigger COM automation object
            OleCheck(Task.CreateTrigger(out WORD iNewTrigger, out ITaskTrigger TaskTrigger));

            // Set the task trigger properties
            var TaskTrigger2 = new TTaskTrigger();

            TaskTrigger2.cbTriggerSize            = (WORD)SizeOf(TaskTrigger2);
            TaskTrigger2.wBeginYear               = 2009;
            TaskTrigger2.wBeginMonth              = 10;
            TaskTrigger2.wBeginDay                = 1;
            TaskTrigger2.wStartHour               = 12;
            TaskTrigger2.TriggerType              = TASK_TIME_TRIGGER_DAILY;
            TaskTrigger2.Type_.Daily.DaysInterval = 1;

            OleCheck(TaskTrigger.SetTrigger(ref TaskTrigger2));

            // Save the task
            var PF = (IPersistFile)Obj2;

            OleCheck(PF.Save("", true));

            MsgBox("Created a daily task named named 'CodeAutomation2 Test'." + "\r\r" + "Note: Account information not set so the task won't actually run, uncomment the SetAccountInfo call and provide actual user info to get a runnable task.",
                   TMsgBoxType.Information,
                   MB.Ok);
        }
コード例 #8
0
ファイル: Trigger.cs プロジェクト: clamwin/clamwind
        /// <summary>
        /// Creates a new, bound Trigger object from an ITaskTrigger interface.  The type of the
        /// concrete object created is determined by the type of ITaskTrigger.
        /// </summary>
        /// <param name="iTaskTrigger">Instance of ITaskTrigger.</param>
        /// <returns>One of the concrete classes derived from Trigger.</returns>
        /// <exception cref="ArgumentNullException"></exception>
        /// <exception cref="ArgumentException">Unable to recognize trigger type.</exception>
        internal static Trigger CreateTrigger(ITaskTrigger iTaskTrigger)
        {
            if (iTaskTrigger == null)
            {
                throw new ArgumentNullException("iTaskTrigger", "Instance of ITaskTrigger cannot be null");
            }
            TaskTrigger sTaskTrigger = new TaskTrigger();

            sTaskTrigger.TriggerSize = (ushort)Marshal.SizeOf(sTaskTrigger);
            iTaskTrigger.GetTrigger(ref sTaskTrigger);
            switch ((TriggerType)sTaskTrigger.Type)
            {
            case TriggerType.RunOnce:
                return(new RunOnceTrigger(iTaskTrigger));

            case TriggerType.RunDaily:
                return(new DailyTrigger(iTaskTrigger));

            case TriggerType.RunWeekly:
                return(new WeeklyTrigger(iTaskTrigger));

            case TriggerType.RunMonthlyDOW:
                return(new MonthlyDOWTrigger(iTaskTrigger));

            case TriggerType.RunMonthly:
                return(new MonthlyTrigger(iTaskTrigger));

            case TriggerType.OnIdle:
                return(new OnIdleTrigger(iTaskTrigger));

            case TriggerType.OnSystemStart:
                return(new OnSystemStartTrigger(iTaskTrigger));

            case TriggerType.OnLogon:
                return(new OnLogonTrigger(iTaskTrigger));

            default:
                throw new ArgumentException("Unable to recognize type of trigger referenced in iTaskTrigger",
                                            "iTaskTrigger");
            }
        }
コード例 #9
0
        public static IList <RobotTask> ToTaskList(SQLiteDataReader reader)
        {
            IList <RobotTask> list = new List <RobotTask>();

            while (reader.Read())
            {
                try
                {
                    int         id         = int.Parse(reader["TaskID"].ToString());
                    DateTime    time       = DateTime.Parse(reader["TaskTime"].ToString());
                    DateTime    nextTime   = DateTime.Parse(reader["NextTaskTime"].ToString());
                    string      num        = reader["TargetNum"].ToString();
                    string      info       = reader["TaskInfo"].ToString();
                    string      remark     = reader["Remark"].ToString();
                    string      targetName = reader["TargetName"].ToString();
                    TaskTrigger trigger    = (TaskTrigger)Enum.Parse(typeof(TaskTrigger), reader["Trigger"].ToString());
                    int         interval   = int.Parse(reader["Interval"].ToString());
                    RobotTask   task       = new RobotTask(id, time, info, num, targetName, remark, trigger, interval, nextTime);
                    list.Add(task);
                }
                catch { }
            }
            return(list);
        }
コード例 #10
0
        /// <summary>
        /// /// <summary>
        /// 注册对象映射
        /// </summary>
        /// </summary>
        public void Register()
        {
            var cfg = new MapperConfigurationExpression();

            cfg.ShouldMapProperty = p => p.GetMethod.IsPublic || p.GetMethod.IsAssembly || p.GetMethod.IsPrivate || p.GetMethod.IsFamilyAndAssembly || p.GetMethod.IsFamily || p.GetMethod.IsFamilyOrAssembly;

            #region Sys

            #region User

            cfg.CreateMap <UserEntity, User>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ)));
            cfg.CreateMap <User, UserEntity>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            cfg.CreateMap <User, AdminUser>();
            //admin user
            cfg.CreateMap <AdminUser, AdminUserDto>();
            cfg.CreateMap <AdminUserDto, AdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            cfg.CreateMap <AdminUserDto, EditAdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            cfg.CreateMap <EditAdminUserViewModel, AdminUserCmdDto>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ)));
            cfg.CreateMap <AdminUserCmdDto, AdminUser>();
            cfg.CreateMap <UserViewModel, AdminUserViewModel>();
            cfg.CreateMap <User, UserDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserDto user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUser)c).MapTo <AdminUserDto>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserCmdDto, User>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                User user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserCmdDto)c).MapTo <AdminUser>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserDto, UserViewModel>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserViewModel user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserDto)c).MapTo <AdminUserViewModel>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserDto, EditAdminUserViewModel>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                EditAdminUserViewModel user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserDto)c).MapTo <EditAdminUserViewModel>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserViewModel, UserCmdDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserCmdDto user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserViewModel)c).MapTo <AdminUserCmdDto>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserFilterViewModel, UserFilterDto>();
            cfg.CreateMap <AdminUserFilterViewModel, AdminUserFilterDto>();
            cfg.CreateMap <ModifyPasswordViewModel, ModifyPasswordCmdDto>();
            cfg.CreateMap <ModifyPasswordCmdDto, ModifyUserPassword>();

            #endregion

            #region Role

            cfg.CreateMap <RoleEntity, Role>().ForMember(r => r.Parent, r => r.ResolveUsing(re => { return(Role.CreateRole(re.Parent)); }));
            cfg.CreateMap <Role, RoleEntity>().ForMember(re => re.Parent, r => r.MapFrom(rs => rs.Parent.SysNo));
            cfg.CreateMap <Role, RoleDto>();
            cfg.CreateMap <RoleDto, Role>();
            cfg.CreateMap <RoleCmdDto, Role>();
            cfg.CreateMap <RoleViewModel, RoleCmdDto>();
            cfg.CreateMap <RoleDto, RoleViewModel>();
            cfg.CreateMap <RoleFilterViewModel, RoleFilterDto>();
            cfg.CreateMap <ModifyRoleAuthorizeCmdDto, ModifyRoleAuthorize>()
            .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>()))))
            .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>()))));

            #endregion

            #region AuthorityGroup

            cfg.CreateMap <AuthorityGroup, AuthorityGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo));
            cfg.CreateMap <AuthorityGroupEntity, AuthorityGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityGroup.CreateAuthorityGroup(re.Parent)); }));
            cfg.CreateMap <AuthorityGroup, AuthorityGroupDto>();
            cfg.CreateMap <AuthorityGroupCmdDto, AuthorityGroup>();
            cfg.CreateMap <AuthorityGroupDto, AuthorityGroupViewModel>();
            cfg.CreateMap <AuthorityGroupDto, EditAuthorityGroupViewModel>();
            cfg.CreateMap <EditAuthorityGroupViewModel, AuthorityGroupCmdDto>();
            cfg.CreateMap <EditAuthorityGroupViewModel, SaveAuthorityGroupCmdDto>().ForMember(a => a.AuthorityGroup, a => a.MapFrom(c => c));

            #endregion

            #region Authority

            cfg.CreateMap <Authority, AuthorityEntity>().ForMember(c => c.AuthGroup, re => re.MapFrom(rs => rs.AuthGroup.SysNo));
            cfg.CreateMap <AuthorityEntity, Authority>().ForMember(c => c.AuthGroup, re => re.ResolveUsing(rs => { return(AuthorityGroup.CreateAuthorityGroup(rs.AuthGroup)); }));
            cfg.CreateMap <Authority, AuthorityDto>();
            cfg.CreateMap <AuthorityCmdDto, Authority>();
            cfg.CreateMap <AuthorityDto, AuthorityViewModel>();
            cfg.CreateMap <AuthorityDto, EditAuthorityViewModel>();
            cfg.CreateMap <AuthorityViewModel, AuthorityCmdDto>();
            cfg.CreateMap <EditAuthorityViewModel, AuthorityCmdDto>();
            cfg.CreateMap <AuthorityFilterViewModel, AuthorityFilterDto>();
            cfg.CreateMap <AuthorityDto, AuthorizationAuthorityViewModel>();

            #endregion

            #region AuthorityOperationGroup

            cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo)).ForMember(r => r.Root, re => re.MapFrom(rs => rs.Root.SysNo));
            cfg.CreateMap <AuthorityOperationGroupEntity, AuthorityOperationGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Parent)); })).ForMember(re => re.Root, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Root)); }));
            cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupDto>();
            cfg.CreateMap <AuthorityOperationGroupCmdDto, AuthorityOperationGroup>();
            cfg.CreateMap <AuthorityOperationGroupDto, AuthorityOperationGroupViewModel>();
            cfg.CreateMap <AuthorityOperationGroupDto, EditAuthorityOperationGroupViewModel>();
            cfg.CreateMap <EditAuthorityOperationGroupViewModel, AuthorityOperationGroupCmdDto>();

            #endregion

            #region AuthorityOperation

            cfg.CreateMap <AuthorityOperation, AuthorityOperationEntity>().ForMember(c => c.Group, re => re.MapFrom(rs => rs.Group.SysNo));
            cfg.CreateMap <AuthorityOperationEntity, AuthorityOperation>().ForMember(c => c.Group, re => re.ResolveUsing(rs => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(rs.Group)); }));
            cfg.CreateMap <AuthorityOperation, AuthorityOperationDto>();
            cfg.CreateMap <AuthorityOperationCmdDto, AuthorityOperation>();
            cfg.CreateMap <AuthorityOperationDto, AuthorityOperationViewModel>();
            cfg.CreateMap <AuthorityOperationDto, EditAuthorityOperationViewModel>();
            cfg.CreateMap <EditAuthorityOperationViewModel, AuthorityOperationCmdDto>();
            cfg.CreateMap <AuthorityOperationFilterViewModel, AuthorityOperationFilterDto>();

            #endregion

            #region AuthorityBinOperation

            cfg.CreateMap <ModifyAuthorityBindAuthorityOperationCmdDto, ModifyAuthorityAndAuthorityOperationBind>()
            .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>()))))
            .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>()))));
            cfg.CreateMap <AuthorityBindOperationFilterViewModel, AuthorityBindOperationFilterDto>();
            cfg.CreateMap <AuthorityOperationBindAuthorityFilterViewModel, AuthorityOperationBindAuthorityFilterDto>();

            #endregion

            #region UserAuthorize

            cfg.CreateMap <UserAuthorizeCmdDto, UserAuthorize>();
            cfg.CreateMap <UserAuthorize, UserAuthorizeEntity>().ForMember(c => c.User, ce => ce.MapFrom(cs => cs.User.SysNo)).ForMember(c => c.Authority, ce => ce.MapFrom(cs => cs.Authority.Code));
            cfg.CreateMap <UserAuthorizeEntity, UserAuthorize>().ForMember(c => c.User, ce => ce.ResolveUsing(cs => { return(User.CreateUser(cs.User)); })).ForMember(c => c.Authority, ce => ce.ResolveUsing(cs => Authority.CreateAuthority(cs.Authority)));

            #endregion

            #region Authentication

            cfg.CreateMap <AuthenticationCmdDto, Authentication>();

            #endregion

            #endregion

            #region Task

            #region JobGroup

            cfg.CreateMap <JobGroup, JobGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.Code)).ForMember(r => r.Root, re => re.MapFrom(rs => rs.Root.Code));
            cfg.CreateMap <JobGroupEntity, JobGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Parent)); })).ForMember(re => re.Root, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Root)); }));
            cfg.CreateMap <JobGroup, JobGroupDto>();
            cfg.CreateMap <JobGroupCmdDto, JobGroup>();
            cfg.CreateMap <JobGroupDto, JobGroupViewModel>();
            cfg.CreateMap <JobGroupViewModel, JobGroupCmdDto>();

            #endregion

            #region ServerNode

            cfg.CreateMap <ServerNode, ServerNodeEntity>();
            cfg.CreateMap <ServerNodeEntity, ServerNode>();
            cfg.CreateMap <ServerNode, ServerNodeDto>();
            cfg.CreateMap <ServerNodeCmdDto, ServerNode>();
            cfg.CreateMap <ServerNodeDto, ServerNodeViewModel>();
            cfg.CreateMap <ServerNodeViewModel, ServerNodeCmdDto>();
            cfg.CreateMap <ServerNodeFilterViewModel, ServerNodeFilterDto>();
            //cfg.CreateMap<ServerNode, TaskService>().ForMember(c => c.Remark, c => c.MapFrom(cs => cs.Description)).ForMember(c => c.Thread, c => c.ResolveUsing<ThreadConfig>(cs =>
            //{
            //    return new ThreadConfig()
            //    {
            //        ThreadCount = cs.ThreadCount,
            //        ThreadPriority = cs.ThreadPriority
            //    };
            //}));

            #endregion

            #region Job

            cfg.CreateMap <Job, JobEntity>().ForMember(r => r.Group, re => re.MapFrom(rs => rs.Group.Code));
            cfg.CreateMap <JobEntity, Job>().ForMember(r => r.Group, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Group)); }));
            cfg.CreateMap <Job, JobDto>();
            cfg.CreateMap <JobCmdDto, Job>();
            cfg.CreateMap <JobDto, JobViewModel>();
            cfg.CreateMap <JobViewModel, JobCmdDto>();
            cfg.CreateMap <JobFilterViewModel, JobFilterDto>();
            //cfg.CreateMap<Job, TaskJob>().ConvertUsing(c =>
            //{
            //    if (c == null)
            //    {
            //        return null;
            //    }
            //    TaskJob job = new TaskJob()
            //    {
            //        Id = c.Id,
            //        Name = c.Name,
            //        AppType = c.Type,
            //        RunType = c.RunType,
            //        State = c.State,
            //        Group = new TaskJobGroup()
            //        {
            //            Id = c.Group?.Code,
            //            Name = c.Group?.Name
            //        }
            //    };
            //    switch (c.Type)
            //    {
            //        case JobApplicationType.本地应用:
            //            job.ApplicationJob = new ApplicationJob()
            //            {
            //                ApplicationPath = c.JobPath
            //            };
            //            break;
            //        case JobApplicationType.自定义任务:
            //            job.CustomerJob = new CustomerJob()
            //            {
            //                JobFilePath = c.JobFileName,
            //                JobTypeFullName = c.JobPath
            //            };
            //            break;
            //        case JobApplicationType.远程任务:
            //            job.RemoteJob = new RemoteJob()
            //            {
            //                RemoteUrl = c.JobPath
            //            };
            //            break;
            //    }
            //    return job;
            //});
            //cfg.CreateMap<JobDto, TaskJob>().ConvertUsing(c =>
            //{
            //    if (c == null)
            //    {
            //        return null;
            //    }
            //    TaskJob job = new TaskJob()
            //    {
            //        Id = c.Id,
            //        Name = c.Name,
            //        AppType = c.Type,
            //        RunType = c.RunType,
            //        State = c.State,
            //        Group = new TaskJobGroup()
            //        {
            //            Id = c.Group?.Code,
            //            Name = c.Group?.Name
            //        }
            //    };
            //    switch (c.Type)
            //    {
            //        case JobApplicationType.本地应用:
            //            job.ApplicationJob = new ApplicationJob()
            //            {
            //                ApplicationPath = c.JobPath
            //            };
            //            break;
            //        case JobApplicationType.自定义任务:
            //            job.CustomerJob = new CustomerJob()
            //            {
            //                JobFilePath = c.JobFileName,
            //                JobTypeFullName = c.JobPath
            //            };
            //            break;
            //        case JobApplicationType.远程任务:
            //            job.RemoteJob = new RemoteJob()
            //            {
            //                RemoteUrl = c.JobPath
            //            };
            //            break;
            //    }
            //    return job;
            //});

            #endregion

            #region JobServerHost

            cfg.CreateMap <JobServerHost, JobServerHostEntity>().ForMember(r => r.Server, re => re.MapFrom(rs => rs.Server.Id)).ForMember(r => r.Job, re => re.MapFrom(rs => rs.Job.Id));
            cfg.CreateMap <JobServerHostEntity, JobServerHost>().ForMember(r => r.Server, re => re.ResolveUsing(rs => { return(ServerNode.CreateServerNode(rs.Server)); })).ForMember(r => r.Job, re => re.ResolveUsing(rs => { return(Job.CreateJob(rs.Job)); }));
            cfg.CreateMap <JobServerHost, JobServerHostDto>();
            cfg.CreateMap <JobServerHostCmdDto, JobServerHost>();
            cfg.CreateMap <JobServerHostDto, JobServerHostViewModel>();
            cfg.CreateMap <JobServerHostViewModel, JobServerHostCmdDto>();
            cfg.CreateMap <JobServerHostFilterViewModel, JobServerHostFilterDto>();

            #endregion

            #region Trigger

            cfg.CreateMap <Trigger, TriggerEntity>().ForMember(c => c.Job, c => c.MapFrom(cs => cs.Job.Id)).ForMember(c => c.ConditionType, c => c.MapFrom(ce => ce.Condition == null ? 0 : (int)ce.Condition.Type));
            cfg.CreateMap <Trigger, SimpleTrigger>();
            cfg.CreateMap <Trigger, ExpressionTrigger>();
            cfg.CreateMap <TriggerEntity, Trigger>().ForMember(c => c.Job, c => c.ResolveUsing(ce => Job.CreateJob(ce.Job))).ForMember(c => c.Condition, c => c.ResolveUsing(ce => TriggerCondition.CreateTriggerCondition((TaskTriggerConditionType)ce.ConditionType, ce.Id)));
            cfg.CreateMap <TriggerFilterViewModel, TriggerFilterDto>();
            cfg.CreateMap <Trigger, TaskTrigger>().ConstructUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TaskTrigger taskTrigger = new TaskTrigger()
                {
                    Id    = c.Id,
                    Job   = c.Job?.MapTo <TaskJob>(),
                    Name  = c.Name,
                    State = c.Status,
                    Type  = c.Type,
                };
                switch (c.Type)
                {
                case TaskTriggerType.简单:
                    var simpleTaskTrigger       = ((SimpleTrigger)c).MapTo <TaskSimpleTrigger>();
                    taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(simpleTaskTrigger);
                    break;

                case TaskTriggerType.自定义:
                    var expressionTaskTrigger   = ((ExpressionTrigger)c).MapTo <TaskExpressionTrigger>();
                    taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(expressionTaskTrigger);
                    break;
                }
                return(taskTrigger);
            });
            cfg.CreateMap <TriggerDto, TaskTrigger>().ConstructUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TaskTrigger taskTrigger = new TaskTrigger()
                {
                    Id    = c.Id,
                    Job   = c.Job?.MapTo <TaskJob>(),
                    Name  = c.Name,
                    State = c.Status,
                    Type  = c.Type,
                };
                switch (c.Type)
                {
                case TaskTriggerType.简单:
                    var simpleTaskTrigger       = ((SimpleTriggerDto)c).MapTo <TaskSimpleTrigger>();
                    taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(simpleTaskTrigger);
                    break;

                case TaskTriggerType.自定义:
                    var expressionTaskTrigger   = ((ExpressionTriggerDto)c).MapTo <TaskExpressionTrigger>();
                    taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(expressionTaskTrigger);
                    break;
                }
                return(taskTrigger);
            });
            //simple trigger
            cfg.CreateMap <TriggerSimpleEntity, SimpleTrigger>().ForMember(c => c.Id, ce => ce.MapFrom(cs => cs.TriggerId));
            cfg.CreateMap <Trigger, TriggerSimpleEntity>();
            cfg.CreateMap <SimpleTrigger, TriggerSimpleEntity>().ForMember(c => c.TriggerId, ce => ce.MapFrom(cs => cs.Id));
            cfg.CreateMap <TriggerSimpleEntity, Trigger>().ConvertUsing(c =>
            {
                return(c.MapTo <SimpleTrigger>());
            });
            cfg.CreateMap <SimpleTrigger, SimpleTriggerDto>();
            cfg.CreateMap <SimpleTriggerCmdDto, SimpleTrigger>();
            cfg.CreateMap <SimpleTriggerDto, SimpleTriggerViewModel>();
            cfg.CreateMap <SimpleTriggerViewModel, SimpleTriggerCmdDto>();
            cfg.CreateMap <TriggerViewModel, SimpleTriggerViewModel>();
            cfg.CreateMap <SimpleTrigger, TaskSimpleTrigger>().ForMember(c => c.RepeatInterval, c => c.MapFrom(cs => TimeSpan.FromMilliseconds(cs.RepeatInterval)));
            cfg.CreateMap <SimpleTriggerDto, TaskSimpleTrigger>().ForMember(c => c.RepeatInterval, c => c.MapFrom(cs => TimeSpan.FromMilliseconds(cs.RepeatInterval)));

            //expression trigger
            cfg.CreateMap <ExpressionTrigger, ExpressionTriggerDto>();
            cfg.CreateMap <ExpressionTriggerCmdDto, ExpressionTrigger>();
            cfg.CreateMap <ExpressionTriggerDto, ExpressionTriggerViewModel>();
            cfg.CreateMap <ExpressionTriggerViewModel, ExpressionTriggerCmdDto>();
            cfg.CreateMap <TriggerViewModel, ExpressionTriggerViewModel>();
            cfg.CreateMap <ExpressionTrigger, TaskExpressionTrigger>();
            cfg.CreateMap <ExpressionTriggerDto, TaskExpressionTrigger>();

            //expression item
            cfg.CreateMap <ExpressionItem, TriggerExpressionEntity>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => string.Join(",", cs.ArrayValue)));
            cfg.CreateMap <TriggerExpressionEntity, ExpressionItem>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => cs.ArrayValue.LSplit(",")));
            cfg.CreateMap <ExpressionItem, ExpressionItemDto>();
            cfg.CreateMap <ExpressionItemCmdDto, ExpressionItem>();
            cfg.CreateMap <ExpressionItemDto, ExpressionItemViewModel>();
            cfg.CreateMap <ExpressionItemViewModel, ExpressionItemCmdDto>();
            cfg.CreateMap <ExpressionItem, TaskExpressionItem>();
            cfg.CreateMap <ExpressionItemDto, TaskExpressionItem>();
            cfg.CreateMap <Trigger, TriggerDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerDto triggerDto = null;
                switch (c.Type)
                {
                case TaskTriggerType.简单:
                    triggerDto = ((SimpleTrigger)c).MapTo <SimpleTriggerDto>();
                    break;

                case TaskTriggerType.自定义:
                    triggerDto = ((ExpressionTrigger)c).MapTo <ExpressionTriggerDto>();
                    break;
                }
                return(triggerDto);
            });
            cfg.CreateMap <TriggerCmdDto, Trigger>().ConvertUsing(t =>
            {
                if (t == null)
                {
                    return(null);
                }
                Trigger trigger = null;
                switch (t.Type)
                {
                case TaskTriggerType.简单:
                    trigger = ((SimpleTriggerCmdDto)t).MapTo <SimpleTrigger>();
                    break;

                case TaskTriggerType.自定义:
                    trigger = ((ExpressionTriggerCmdDto)t).MapTo <ExpressionTrigger>();
                    break;
                }
                return(trigger);
            });
            cfg.CreateMap <TriggerDto, TriggerViewModel>().ConvertUsing(t =>
            {
                if (t == null)
                {
                    return(null);
                }
                TriggerViewModel trigger = null;
                switch (t.Type)
                {
                case TaskTriggerType.简单:
                    trigger = ((SimpleTriggerDto)t).MapTo <SimpleTriggerViewModel>();
                    break;

                case TaskTriggerType.自定义:
                    trigger = ((ExpressionTriggerDto)t).MapTo <ExpressionTriggerViewModel>();
                    break;
                }
                return(trigger);
            });
            cfg.CreateMap <TriggerViewModel, TriggerCmdDto>().ConvertUsing(t =>
            {
                if (t == null)
                {
                    return(null);
                }
                TriggerCmdDto trigger = null;
                switch (t.Type)
                {
                case TaskTriggerType.简单:
                    trigger = ((SimpleTriggerViewModel)t).MapTo <SimpleTriggerCmdDto>();
                    break;

                case TaskTriggerType.自定义:
                    trigger = ((ExpressionTriggerViewModel)t).MapTo <ExpressionTriggerCmdDto>();
                    break;

                default:
                    var newTrigger = new SimpleTriggerViewModel()
                    {
                        Id             = t.Id,
                        Name           = t.Name,
                        Type           = TaskTriggerType.简单,
                        StartTime      = t.StartTime,
                        Description    = t.Description,
                        ApplyTo        = t.ApplyTo,
                        Condition      = t.Condition,
                        EndTime        = t.EndTime,
                        FireTotalCount = t.FireTotalCount,
                        Job            = t.Job,
                        MisFireType    = t.MisFireType,
                        NextFireTime   = t.NextFireTime,
                        PrevFireTime   = t.PrevFireTime,
                        Priority       = t.Priority,
                        Status         = t.Status
                    };
                    trigger = newTrigger.MapTo <SimpleTriggerCmdDto>();
                    break;
                }
                return(trigger);
            });

            #endregion

            #region TriggerCondition

            //年计划
            cfg.CreateMap <TriggerAnnualConditionEntity, AnnualConditionDay>();
            cfg.CreateMap <AnnualConditionDay, TriggerAnnualConditionEntity>();

            cfg.CreateMap <TriggerAnnualCondition, TriggerAnnualConditionDto>();
            cfg.CreateMap <TriggerAnnualConditionDto, TriggerAnnualConditionViewModel>();
            cfg.CreateMap <TriggerAnnualConditionViewModel, TriggerAnnualConditionCmdDto>();
            cfg.CreateMap <TriggerAnnualConditionCmdDto, TriggerAnnualCondition>();

            cfg.CreateMap <AnnualConditionDay, AnnualConditionDayDto>();
            cfg.CreateMap <AnnualConditionDayDto, AnnualConditionDayViewModel>();
            cfg.CreateMap <AnnualConditionDayViewModel, AnnualConditionDayCmdDto>();
            cfg.CreateMap <AnnualConditionDayCmdDto, AnnualConditionDay>();

            //转化为任务对象
            cfg.CreateMap <TriggerAnnualConditionDto, TaskTriggerAnnualCondition>();
            cfg.CreateMap <TriggerAnnualCondition, TaskTriggerAnnualCondition>();
            cfg.CreateMap <AnnualConditionDayDto, TaskAnnualConditionDay>();
            cfg.CreateMap <AnnualConditionDay, TaskAnnualConditionDay>();

            //完整日期计划
            cfg.CreateMap <TriggerFullDateConditionEntity, FullDateConditionDate>();
            cfg.CreateMap <FullDateConditionDate, TriggerFullDateConditionEntity>();

            cfg.CreateMap <TriggerFullDateCondition, TriggerFullDateConditionDto>();
            cfg.CreateMap <TriggerFullDateConditionDto, TriggerFullDateConditionViewModel>();
            cfg.CreateMap <TriggerFullDateConditionViewModel, TriggerFullDateConditionCmdDto>();
            cfg.CreateMap <TriggerFullDateConditionCmdDto, TriggerFullDateCondition>();

            cfg.CreateMap <FullDateConditionDate, FullDateConditionDateDto>();
            cfg.CreateMap <FullDateConditionDateDto, FullDateConditionDateViewModel>();
            cfg.CreateMap <FullDateConditionDateViewModel, FullDateConditionDateCmdDto>();
            cfg.CreateMap <FullDateConditionDateCmdDto, FullDateConditionDate>();

            //转化为任务对象
            cfg.CreateMap <TriggerFullDateConditionDto, TaskTriggerFullDateCondition>();
            cfg.CreateMap <TriggerFullDateCondition, TaskTriggerFullDateCondition>();
            cfg.CreateMap <FullDateConditionDateDto, TaskFullDateConditionDate>();
            cfg.CreateMap <FullDateConditionDate, TaskFullDateConditionDate>();

            //月份日期
            cfg.CreateMap <TriggerMonthlyConditionEntity, MonthConditionDay>();
            cfg.CreateMap <MonthConditionDay, TriggerMonthlyConditionEntity>();

            cfg.CreateMap <TriggerMonthlyCondition, TriggerMonthlyConditionDto>();
            cfg.CreateMap <TriggerMonthlyConditionDto, TriggerMonthlyConditionViewModel>();
            cfg.CreateMap <TriggerMonthlyConditionViewModel, TriggerMonthlyConditionCmdDto>();
            cfg.CreateMap <TriggerMonthlyConditionCmdDto, TriggerMonthlyCondition>();

            cfg.CreateMap <MonthConditionDay, MonthConditionDayDto>();
            cfg.CreateMap <MonthConditionDayDto, MonthConditionDayViewModel>();
            cfg.CreateMap <MonthConditionDayViewModel, MonthConditionDayCmdDto>();
            cfg.CreateMap <MonthConditionDayCmdDto, MonthConditionDay>();

            //转化为任务对象
            cfg.CreateMap <TriggerMonthlyConditionDto, TaskTriggerMonthlyCondition>();
            cfg.CreateMap <TriggerMonthlyCondition, TaskTriggerMonthlyCondition>();
            cfg.CreateMap <MonthConditionDayDto, TaskMonthConditionDay>();
            cfg.CreateMap <MonthConditionDay, TaskMonthConditionDay>();

            //星期日期
            cfg.CreateMap <TriggerWeeklyConditionEntity, WeeklyConditionDay>();
            cfg.CreateMap <WeeklyConditionDay, TriggerWeeklyConditionEntity>();

            cfg.CreateMap <TriggerWeeklyCondition, TriggerWeeklyConditionDto>();
            cfg.CreateMap <TriggerWeeklyConditionDto, TriggerWeeklyConditionViewModel>();
            cfg.CreateMap <TriggerWeeklyConditionViewModel, TriggerWeeklyConditionCmdDto>();
            cfg.CreateMap <TriggerWeeklyConditionCmdDto, TriggerWeeklyCondition>();

            cfg.CreateMap <WeeklyConditionDay, WeeklyConditionDayDto>();
            cfg.CreateMap <WeeklyConditionDayDto, WeeklyConditionDayViewModel>();
            cfg.CreateMap <WeeklyConditionDayViewModel, WeeklyConditionDayCmdDto>();
            cfg.CreateMap <WeeklyConditionDayCmdDto, WeeklyConditionDay>();

            //转化为任务对象
            cfg.CreateMap <TriggerWeeklyConditionDto, TaskTriggerWeeklyCondition>();
            cfg.CreateMap <TriggerWeeklyCondition, TaskTriggerWeeklyCondition>();
            cfg.CreateMap <WeeklyConditionDayDto, TaskWeeklyConditionDay>();
            cfg.CreateMap <WeeklyConditionDay, TaskWeeklyConditionDay>();

            //表达式
            cfg.CreateMap <TriggerExpressionConditionEntity, ExpressionItem>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => cs.ArrayValue.LSplit(","))).ForMember(c => c.Option, c => c.MapFrom(cs => cs.ConditionOption));
            cfg.CreateMap <ExpressionItem, TriggerExpressionConditionEntity>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => string.Join(",", cs.ArrayValue))).ForMember(c => c.ConditionOption, c => c.MapFrom(cs => cs.Option));

            cfg.CreateMap <TriggerExpressionCondition, TriggerExpressionConditionDto>();
            cfg.CreateMap <TriggerExpressionConditionDto, TriggerExpressionConditionViewModel>();
            cfg.CreateMap <TriggerExpressionConditionViewModel, TriggerExpressionConditionCmdDto>();
            cfg.CreateMap <TriggerExpressionConditionCmdDto, TriggerExpressionCondition>();

            //转化为任务对象
            cfg.CreateMap <TriggerExpressionConditionDto, TaskTriggerExpressionCondition>();
            cfg.CreateMap <TriggerExpressionCondition, TaskTriggerExpressionCondition>();

            //时间段
            cfg.CreateMap <TriggerDailyConditionEntity, TriggerCondition>();
            cfg.CreateMap <TriggerCondition, TriggerDailyConditionEntity>();
            cfg.CreateMap <TriggerDailyConditionEntity, TriggerDailyCondition>();
            cfg.CreateMap <TriggerDailyCondition, TriggerDailyConditionEntity>();

            cfg.CreateMap <TriggerDailyCondition, TriggerDailyConditionDto>();
            cfg.CreateMap <TriggerDailyConditionDto, TriggerDailyConditionViewModel>();
            cfg.CreateMap <TriggerDailyConditionViewModel, TriggerDailyConditionCmdDto>();
            cfg.CreateMap <TriggerDailyConditionCmdDto, TriggerDailyCondition>();

            //转化为任务对象
            cfg.CreateMap <TriggerDailyConditionDto, TaskTriggerDailyCondition>();
            cfg.CreateMap <TriggerDailyCondition, TaskTriggerDailyCondition>();
            cfg.CreateMap <TriggerDailyConditionDto, TaskTriggerDailyCondition>();
            cfg.CreateMap <TriggerDailyCondition, TaskTriggerDailyCondition>();

            cfg.CreateMap <TriggerCondition, TriggerConditionDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerConditionDto triggerConditionDto = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    triggerConditionDto = ((TriggerFullDateCondition)c).MapTo <TriggerFullDateConditionDto>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    triggerConditionDto = ((TriggerWeeklyCondition)c).MapTo <TriggerWeeklyConditionDto>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    triggerConditionDto = ((TriggerDailyCondition)c).MapTo <TriggerDailyConditionDto>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    triggerConditionDto = ((TriggerAnnualCondition)c).MapTo <TriggerAnnualConditionDto>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    triggerConditionDto = ((TriggerMonthlyCondition)c).MapTo <TriggerMonthlyConditionDto>();
                    break;

                case TaskTriggerConditionType.自定义:
                    triggerConditionDto = ((TriggerExpressionCondition)c).MapTo <TriggerExpressionConditionDto>();
                    break;
                }
                return(triggerConditionDto);
            });

            cfg.CreateMap <TriggerConditionDto, TriggerConditionViewModel>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerConditionViewModel triggerConditionViewModel = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    triggerConditionViewModel = ((TriggerFullDateConditionDto)c).MapTo <TriggerFullDateConditionViewModel>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    triggerConditionViewModel = ((TriggerWeeklyConditionDto)c).MapTo <TriggerWeeklyConditionViewModel>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    triggerConditionViewModel = ((TriggerDailyConditionDto)c).MapTo <TriggerDailyConditionViewModel>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    triggerConditionViewModel = ((TriggerAnnualConditionDto)c).MapTo <TriggerAnnualConditionViewModel>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    triggerConditionViewModel = ((TriggerMonthlyConditionDto)c).MapTo <TriggerMonthlyConditionViewModel>();
                    break;

                case TaskTriggerConditionType.自定义:
                    triggerConditionViewModel = ((TriggerExpressionConditionDto)c).MapTo <TriggerExpressionConditionViewModel>();
                    break;
                }
                return(triggerConditionViewModel);
            });

            cfg.CreateMap <TriggerConditionViewModel, TriggerConditionCmdDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerConditionCmdDto triggerConditionCmdDto = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    triggerConditionCmdDto = ((TriggerFullDateConditionViewModel)c).MapTo <TriggerFullDateConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    triggerConditionCmdDto = ((TriggerWeeklyConditionViewModel)c).MapTo <TriggerWeeklyConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    triggerConditionCmdDto = ((TriggerDailyConditionViewModel)c).MapTo <TriggerDailyConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    triggerConditionCmdDto = ((TriggerAnnualConditionViewModel)c).MapTo <TriggerAnnualConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    triggerConditionCmdDto = ((TriggerMonthlyConditionViewModel)c).MapTo <TriggerMonthlyConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.自定义:
                    triggerConditionCmdDto = ((TriggerExpressionConditionViewModel)c).MapTo <TriggerExpressionConditionCmdDto>();
                    break;
                }
                return(triggerConditionCmdDto);
            });

            cfg.CreateMap <TriggerConditionCmdDto, TriggerCondition>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerCondition triggerCondition = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    triggerCondition = ((TriggerFullDateConditionCmdDto)c).MapTo <TriggerFullDateCondition>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    triggerCondition = ((TriggerWeeklyConditionCmdDto)c).MapTo <TriggerWeeklyCondition>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    triggerCondition = ((TriggerDailyConditionCmdDto)c).MapTo <TriggerDailyCondition>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    triggerCondition = ((TriggerAnnualConditionCmdDto)c).MapTo <TriggerAnnualCondition>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    triggerCondition = ((TriggerMonthlyConditionCmdDto)c).MapTo <TriggerMonthlyCondition>();
                    break;

                case TaskTriggerConditionType.自定义:
                    triggerCondition = ((TriggerExpressionConditionCmdDto)c).MapTo <TriggerExpressionCondition>();
                    break;
                }
                return(triggerCondition);
            });
            cfg.CreateMap <TriggerConditionDto, TaskTriggerCondition>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TaskTriggerCondition taskCondition = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    taskCondition = ((TriggerFullDateConditionDto)c).MapTo <TaskTriggerFullDateCondition>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    taskCondition = ((TriggerWeeklyConditionDto)c).MapTo <TaskTriggerWeeklyCondition>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    taskCondition = ((TriggerDailyConditionDto)c).MapTo <TaskTriggerDailyCondition>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    taskCondition = ((TriggerAnnualConditionDto)c).MapTo <TaskTriggerAnnualCondition>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    taskCondition = ((TriggerMonthlyConditionDto)c).MapTo <TaskTriggerMonthlyCondition>();
                    break;

                case TaskTriggerConditionType.自定义:
                    taskCondition = ((TriggerExpressionConditionDto)c).MapTo <TaskTriggerExpressionCondition>();
                    break;
                }
                return(taskCondition);
            });
            cfg.CreateMap <TriggerCondition, TaskTriggerCondition>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TaskTriggerCondition taskCondition = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    taskCondition = ((TriggerFullDateCondition)c).MapTo <TaskTriggerFullDateCondition>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    taskCondition = ((TriggerWeeklyCondition)c).MapTo <TaskTriggerWeeklyCondition>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    taskCondition = ((TriggerDailyCondition)c).MapTo <TaskTriggerDailyCondition>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    taskCondition = ((TriggerAnnualCondition)c).MapTo <TaskTriggerAnnualCondition>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    taskCondition = ((TriggerMonthlyCondition)c).MapTo <TaskTriggerMonthlyCondition>();
                    break;

                case TaskTriggerConditionType.自定义:
                    taskCondition = ((TriggerExpressionCondition)c).MapTo <TaskTriggerExpressionCondition>();
                    break;
                }
                return(taskCondition);
            });

            #endregion

            #region TriggerServer

            cfg.CreateMap <TriggerServer, TriggerServerEntity>().ForMember(c => c.Trigger, c => c.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Server, c => c.MapFrom(cs => cs.Server.Id));
            cfg.CreateMap <TriggerServerEntity, TriggerServer>().ForMember(c => c.Trigger, c => c.ResolveUsing(cs => Trigger.CreateTrigger(cs.Trigger))).ForMember(c => c.Server, c => c.ResolveUsing(cs => ServerNode.CreateServerNode(cs.Server)));
            cfg.CreateMap <TriggerServer, TriggerServerDto>();
            cfg.CreateMap <TriggerServerCmdDto, TriggerServer>();
            cfg.CreateMap <TriggerServerDto, TriggerServerViewModel>();
            cfg.CreateMap <TriggerServerViewModel, TriggerServerCmdDto>();
            cfg.CreateMap <TriggerServerFilterViewModel, TriggerServerFilterDto>();

            #endregion

            #region ExecuteLog

            cfg.CreateMap <ExecuteLog, ExecuteLogEntity>().ForMember(c => c.Server, ce => ce.MapFrom(cs => cs.Server.Id)).ForMember(c => c.Trigger, ce => ce.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Job, ce => ce.MapFrom(cs => cs.Job.Id));
            cfg.CreateMap <ExecuteLogEntity, ExecuteLog>().ForMember(c => c.Server, ce => ce.ResolveUsing(cs => { return(ServerNode.CreateServerNode(cs.Server)); })).ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(Job.CreateJob(cs.Job)); })).ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(Trigger.CreateTrigger(cs.Trigger)); }));
            cfg.CreateMap <ExecuteLog, ExecuteLogDto>();
            cfg.CreateMap <ExecuteLogCmdDto, ExecuteLog>();
            cfg.CreateMap <ExecuteLogDto, ExecuteLogViewModel>();
            cfg.CreateMap <ExecuteLogViewModel, ExecuteLogCmdDto>();
            cfg.CreateMap <ExecuteLogFilterViewModel, ExecuteLogFilterDto>();

            //任务对象转换
            cfg.CreateMap <TaskJobExecuteLog, ExecuteLogCmdDto>()
            .ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(new JobCmdDto()
                {
                    Id = cs.Job?.Id
                }); }))
            .ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(new TriggerCmdDto()
                {
                    Id = cs.Trigger?.Id
                }); }));

            #endregion

            #region ErrorLog

            cfg.CreateMap <ErrorLog, ErrorLogEntity>().ForMember(c => c.Server, ce => ce.MapFrom(cs => cs.Server.Id)).ForMember(c => c.Trigger, ce => ce.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Job, ce => ce.MapFrom(cs => cs.Job.Id));;
            cfg.CreateMap <ErrorLogEntity, ErrorLog>().ForMember(c => c.Server, ce => ce.ResolveUsing(cs => { return(ServerNode.CreateServerNode(cs.Server)); })).ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(Job.CreateJob(cs.Job)); })).ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(Trigger.CreateTrigger(cs.Trigger)); }));
            cfg.CreateMap <ErrorLog, ErrorLogDto>();
            cfg.CreateMap <ErrorLogCmdDto, ErrorLog>();
            cfg.CreateMap <ErrorLogDto, ErrorLogViewModel>();
            cfg.CreateMap <ErrorLogViewModel, ErrorLogCmdDto>();
            cfg.CreateMap <ErrorLogFilterViewModel, ErrorLogFilterDto>();

            #endregion

            #region JobFile

            cfg.CreateMap <JobFile, JobFileEntity>();
            cfg.CreateMap <JobFileEntity, JobFile>();
            cfg.CreateMap <JobFile, JobFileDto>();
            cfg.CreateMap <JobFileCmdDto, JobFile>();
            cfg.CreateMap <JobFileDto, JobFileViewModel>();
            cfg.CreateMap <JobFileViewModel, JobFileCmdDto>();

            #endregion

            #endregion

            AutoMapper.Mapper.Initialize(cfg);
        }
コード例 #11
0
 internal Trigger(ITaskTrigger trigger, TaskTrigger data)
 {
     _v1Trigger     = trigger;
     _v1TriggerData = data;
     _ttype         = ConvertFromV1TriggerType(data.Type);
 }
コード例 #12
0
 private void RemoveTrigger(TaskTrigger trigger)
 {
     _triggers.Remove(trigger);
 }
コード例 #13
0
ファイル: Trigger.cs プロジェクト: virmitio/coapp
 internal Trigger(ITaskTrigger trigger, TaskTrigger data)
 {
     v1Trigger = trigger;
     v1TriggerData = data;
     ttype = ConvertFromV1TriggerType(data.Type);
 }
コード例 #14
0
ファイル: Trigger.cs プロジェクト: virmitio/coapp
 internal Trigger(ITaskTrigger trigger, V1.TaskTriggerType type)
 {
     v1Trigger = trigger;
     v1TriggerData = trigger.GetTrigger();
     v1TriggerData.Type = type;
     ttype = ConvertFromV1TriggerType(type);
 }