/// <summary>发送一对多的待办信息</summary>
        /// <param name="taskCode">任务编号</param>
        /// <param name="applicationId">第三方系统帐号标识</param>
        /// <param name="title">标题</param>
        /// <param name="content">详细信息地址</param>
        /// <param name="tags">标签</param>
        /// <param name="type">类型</param>
        /// <param name="senderId">发送者</param>
        /// <param name="receiverIds">接收者</param>
        public void SendRange(string applicationId, string taskCode, string type, string title, string content, string tags, string senderId, string receiverIds, DateTime triggerTime)
        {
            TaskWaitingInfo task = new TaskWaitingInfo();

            task.Id = StringHelper.ToGuid();

            task.ApplicationId = applicationId;
            task.TaskCode      = taskCode;
            task.Title         = title;
            task.Content       = content;
            task.Type          = type;
            task.Tags          = tags;
            task.SenderId      = senderId;

            string[] keys = receiverIds.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string key in keys)
            {
                if (!string.IsNullOrEmpty(key))
                {
                    task.AddReceiver(key);
                }
            }

            task.CreateDate = DateTime.Now;

            // 触发发送定时任务信息库到任务信息库的时间.
            task.TriggerTime = triggerTime;

            this.Save(task);
        }
        /// <summary>添加记录</summary>
        /// <param name="param">TaskWaitingInfo 实例的详细信息</param>
        public void Insert(TaskWaitingInfo param)
        {
            Dictionary <string, object> args = new Dictionary <string, object>();

            try
            {
                this.ibatisMapper.BeginTransaction();

                this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Insert", tableName)), param);

                foreach (TaskWaitingReceiverInfo item in param.ReceiverGroup)
                {
                    item.TaskWaitingId = param.Id;

                    this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Receiver_Insert", tableName)), item);
                }

                this.ibatisMapper.CommitTransaction();
            }
            catch (Exception ex)
            {
                this.ibatisMapper.RollBackTransaction();

                throw ex;
            }
        }
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(XmlDocument doc)
        /// <summary>保存记录</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string Save(XmlDocument doc)
        {
            TaskWaitingInfo param = new TaskWaitingInfo();

            param = (TaskWaitingInfo)AjaxUtil.Deserialize(param, doc);

            this.service.Save(param);

            return(MessageObject.Stringify("0", I18n.Strings["msg_save_success"]));
        }
        /// <summary>查询某条记录</summary>
        /// <param name="applicationId">应用系统的标识</param>
        /// <param name="taskCode">任务编码</param>
        /// <returns>返回一个 TaskWaitingInfo 实例的详细信息</returns>
        public TaskWaitingInfo FindOneByTaskCode(string applicationId, string taskCode)
        {
            TaskWaitingInfo param = this.provider.FindOneByTaskCode(applicationId, taskCode);

            if (param != null)
            {
                param = this[param.Id];
            }

            return(param);
        }
        // -------------------------------------------------------
        // 保存 添加 修改 删除
        // -------------------------------------------------------

        #region 函数:Save(TaskWaitingInfo param)
        /// <summary>保存记录</summary>
        /// <param name="param">TaskWaitingInfo 实例详细信息</param>
        /// <returns>TaskWaitingInfo 实例详细信息</returns>
        public TaskWaitingInfo Save(TaskWaitingInfo param)
        {
            if (!IsExistTaskCode(param.ApplicationId, param.TaskCode))
            {
                Insert(param);
            }
            else
            {
                Update(param);
            }

            return((TaskWaitingInfo)param);
        }
        // -------------------------------------------------------
        // 查询
        // -------------------------------------------------------

        #region 函数:FindOne(string id)
        /// <summary>查询某条记录</summary>
        /// <param name="id">TaskWaitingInfo Id号</param>
        /// <returns>返回一个 TaskWaitingInfo 实例的详细信息</returns>
        public TaskWaitingInfo FindOne(string id)
        {
            Dictionary <string, object> args = new Dictionary <string, object>();

            args.Add("Id", id);

            TaskWaitingInfo param = this.ibatisMapper.QueryForObject <TaskWaitingInfo>(StringHelper.ToProcedurePrefix(string.Format("{0}_FindOne", tableName)), args);

            if (param != null)
            {
                // 绑定接收者信息
                BindReceiverGroup(param);
            }

            return(param);
        }
Beispiel #7
0
        public void TestSend()
        {
            string applicationId = "00000000-0000-0000-0000-000000000001";

            string taskCode = StringHelper.ToGuid();

            TasksContext.Instance.TaskWaitingService.Send(applicationId, taskCode, "4", string.Format("测试任务-编号{0}", taskCode), DateTime.Now.ToString(), "测试", "00000000-0000-0000-0000-000000000001", "00000000-0000-0000-0000-000000100000", DateTime.Now.AddDays(3));

            TaskWaitingInfo task = TasksContext.Instance.TaskWaitingService.FindOneByTaskCode(applicationId, taskCode);

            Assert.IsNotNull(task);

            if (TasksContext.Instance.TaskWaitingService.IsExistTaskCode(applicationId, taskCode))
            {
                TasksContext.Instance.TaskWaitingService.DeleteByTaskCode(applicationId, taskCode);
            }
        }
        /// <summary>修改记录</summary>
        /// <param name="param">TaskWaitingInfo 实例的详细信息</param>
        public void Update(TaskWaitingInfo param)
        {
            //
            // [主键] ApplicationId 和 TaskCode
            //

            Dictionary <string, object> args = new Dictionary <string, object>();

            TaskWaitingInfo temp = FindOneByTaskCode(param.ApplicationId, param.TaskCode);

            args.Add("Id", temp.Id);

            args.Add("ApplicationId", param.ApplicationId);
            args.Add("TaskCode", param.TaskCode);

            try
            {
                this.ibatisMapper.BeginTransaction();

                this.ibatisMapper.Update(StringHelper.ToProcedurePrefix(string.Format("{0}_Update", tableName)), param);

                // 接收者

                // 删除旧的分配人员数据
                this.ibatisMapper.Delete(StringHelper.ToProcedurePrefix(string.Format("{0}_Receiver_DeleteByTaskCode", tableName)), args);

                // 添加新的分配人员数据
                foreach (TaskWaitingReceiverInfo item in param.ReceiverGroup)
                {
                    item.TaskWaitingId = temp.Id;

                    this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Receiver_Insert", tableName)), item);
                }

                this.ibatisMapper.CommitTransaction();
            }
            catch (Exception ex)
            {
                this.ibatisMapper.RollBackTransaction();

                throw ex;
            }
        }
        // -------------------------------------------------------
        // 添加 删除 修改
        // -------------------------------------------------------

        #region 函数:Save(TaskWaitingInfo param)
        /// <summary>保存记录</summary>
        /// <param name="param"> 实例<see cref="TaskWaitingInfo"/>详细信息</param>
        /// <returns>TaskWaitingInfo 实例详细信息</returns>
        public TaskWaitingInfo Save(TaskWaitingInfo param)
        {
            if (string.IsNullOrEmpty(param.ApplicationId))
            {
                throw new ArgumentException("ApplicationId is null.");
            }

            if (string.IsNullOrEmpty(param.TaskCode))
            {
                throw new ArgumentException("TaskCode is null.");
            }

            if (string.IsNullOrEmpty(param.Id))
            {
                param.Id = StringHelper.ToGuid();
            }

            param = StringHelper.ToSafeXSS <TaskWaitingInfo>(param);

            return(this.provider.Save(param));
        }
        private void BindReceiverGroup(TaskWaitingInfo task)
        {
            Dictionary <string, object> args = new Dictionary <string, object>();

            string whereClause = string.Format(" TaskWaitingId = ##{0}## ", task.Id);

            args.Add("WhereClause", StringHelper.ToSafeSQL(whereClause));
            args.Add("Length", 0);

            IList <TaskWaitingReceiverInfo> list = this.ibatisMapper.QueryForList <TaskWaitingReceiverInfo>(StringHelper.ToProcedurePrefix(string.Format("{0}_Receiver_FindAll", tableName)), args);

            foreach (TaskWaitingReceiverInfo item in list)
            {
                TaskWaitingReceiverInfo receiver = new TaskWaitingReceiverInfo();

                receiver.TaskWaitingId = item.TaskWaitingId;
                receiver.ReceiverId    = item.ReceiverId;
                receiver.IsSend        = item.IsSend;
                receiver.SendTime      = item.SendTime;

                task.ReceiverGroup.Add(receiver);
            }
        }
        /// <summary>发送一对一的待办信息</summary>
        /// <param name="taskCode">任务编号</param>
        /// <param name="applicationId">第三方系统帐号标识</param>
        /// <param name="title">标题</param>
        /// <param name="content">详细内容</param>
        /// <param name="tags">标签</param>
        /// <param name="type">类型</param>
        /// <param name="senderId">发送者</param>
        /// <param name="receiverId">接收者</param>
        /// <param name="triggerTime">触发时间</param>
        public void Send(string applicationId, string taskCode, string type, string title, string content, string tags, string senderId, string receiverId, DateTime triggerTime)
        {
            TaskWaitingInfo task = new TaskWaitingInfo();

            task.Id = StringHelper.ToGuid();

            task.ApplicationId = applicationId;
            task.TaskCode      = taskCode;
            task.Title         = title;
            task.Content       = content;
            task.Type          = type;
            task.Tags          = tags;
            task.SenderId      = senderId;

            task.AddReceiver(receiverId);

            task.CreateDate = DateTime.Now;

            // 触发发送定时任务信息库到任务信息库的时间.
            task.TriggerTime = triggerTime;

            this.Save(task);
        }
Beispiel #12
0
        public void TestSave()
        {
            string applicationId = "00000000-0000-0000-0000-000000000001";

            string taskCode = StringHelper.ToGuid();

            string id = StringHelper.ToGuid();

            if (TasksContext.Instance.TaskWaitingService.IsExist(id))
            {
                throw new Exception("任务已存在, 测试失败.");
            }

            //
            // 新增定时任务
            //

            TaskWaitingInfo param = new TaskWaitingInfo();

            param.Id = id;

            param.ApplicationId = applicationId;
            param.TaskCode      = taskCode;
            param.Title         = string.Format("测试任务-编号{0}", taskCode);
            param.Content       = DateTime.Now.ToString();
            param.Type          = "1";
            param.Tags          = "测试";
            param.SenderId      = "00000000-0000-0000-0000-000000000001";

            param.AddReceiver("00000000-0000-0000-0000-000000100000");

            param.CreateDate = DateTime.Now;

            param.TriggerTime = DateTime.Now.AddDays(3);

            param = TasksContext.Instance.TaskWaitingService.Save(param);

            //
            // 修改任务
            //

            Assert.AreNotEqual(param.Content, "任务内容被修改.");

            param.Content = "任务内容被修改.";

            param = TasksContext.Instance.TaskWaitingService.Save(param);

            param = TasksContext.Instance.TaskWaitingService.FindOne(id);

            Assert.AreEqual(param.Content, "任务内容被修改.");

            //
            // 清理
            //
            if (TasksContext.Instance.TaskWaitingService.IsExist(id))
            {
                TasksContext.Instance.TaskWaitingService.Delete(id);
            }

            param = TasksContext.Instance.TaskWaitingService.FindOne(id);

            Assert.IsNull(param);
        }