using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace QMTask.Core
{
    /// <summary>
    /// 任务调度服务接口
    /// </summary>
    [ServiceContract(Namespace = "http://www.ainote.cn", SessionMode = SessionMode.Required)]
    public interface ITaskService
    {

        #region 获取任务列表

        [OperationContract]
        List<TaskInfo> GetTaskList();   

        #endregion

        #region 计划管理

        [OperationContract]
        List<PlanInfo> GetPlanList();

        [OperationContract]
        PlanInfo GetPlanModel(string PlanID);

        [OperationContract]
        bool AddPlan(PlanInfo plan);

        [OperationContract]
        bool UpdatePlan(PlanInfo plan);

        [OperationContract]
        bool DeletePlan(PlanInfo plan);

        [OperationContract]
        bool StartPlan(PlanInfo plan);

        [OperationContract]
        bool StopPlan(PlanInfo plan);

        #endregion

        #region 控制

        [OperationContract]
        bool GetServerStatus();

        [OperationContract]
        void Start();

        [OperationContract]
        void Stop();

        [OperationContract]
        List<MonitorInfo> GetPlanMonitorInfos();

        #endregion

        #region 登录

        [OperationContract]
        void Login(string credentialID);

        #endregion
    }
}