Beispiel #1
0
        public void AutoInvalidMeetingUserReturnReceiptTodos(Guid meetingId, bool isSendMessage = false)
        {
            var tasks = from a in _workFlowTaskRepository.GetAll()
                        join b in _repository.GetAll() on a.InstanceID equals b.Id.ToString()
                            where b.MeetingId == meetingId && (a.Status == 0 || a.Status == 1)
                        select a;

            foreach (var item in tasks)
            {
                item.Status = 10;
                _workFlowTaskRepository.Update(item);
            }
            if (isSendMessage)
            {
                var taskUsers = (from a in tasks group a by a.ReceiveID into g select g).ToList();
                if (taskUsers.Count() > 0)
                {
                    foreach (var item in taskUsers)
                    {
                        var task = item.FirstOrDefault();
                        _noticeManager.CreateOrUpdateNotice(new NoticePublishInput()
                        {
                            Title         = task.Title + "终止任务",
                            Content       = "终止任务",
                            NoticeUserIds = task.ReceiveID.ToString(),
                            NoticeType    = 1
                        });
                    }
                }
            }
        }
Beispiel #2
0
        public void CreateProjectWorkSpaceNoticeSync(NoticePublishInputForWorkSpaceInput input)
        {
            var    projectModel = _singleProjectInfoRepository.Get(input.ProjectId);
            string userIdStr    = "";

            switch (input.UserType)
            {
            case 0:
                var projectMembers = _projectAuditMemberRepository.GetAll().Where(r => r.ProjectBaseId == projectModel.Id);
                var userIds        = projectMembers.Select(r => r.UserId).Distinct().ToList();
                if (projectModel.CreatorUserId.HasValue)
                {
                    if (!userIds.Contains(projectModel.CreatorUserId.Value))
                    {
                        userIds.Add(projectModel.CreatorUserId.Value);
                    }
                }
                Debug.Assert(AbpSession.UserId != null, "");
                var currentUserId = AbpSession.UserId.Value;
                if (!userIds.Contains(currentUserId))
                {
                    userIds.Add(currentUserId);
                }
                userIdStr = string.Join(",", userIds);
                break;

            case 1:
                var task = _workFlowTaskRepository.GetAll().Where(x => x.InstanceID == projectModel.Id.ToString()).OrderByDescending(x => x.Sort).FirstOrDefault();
                if (task != null)
                {
                    var taskUserIds = _workFlowTaskRepository.GetAll().Where(x => x.InstanceID == projectModel.Id.ToString() && x.Sort < task.Sort).Select(r => r.ReceiveID).Distinct().ToList();
                    userIdStr = string.Join(",", taskUserIds);
                }
                break;

            case 3:
                var taskAllUserIds = _workFlowTaskRepository.GetAll().Where(x => x.InstanceID == projectModel.Id.ToString()).Select(r => r.ReceiveID).Distinct().ToList();
                userIdStr = string.Join(",", taskAllUserIds);
                break;

            case 2:
                userIdStr = input.NoticeUserIds;
                break;
            }
            if (!string.IsNullOrEmpty(userIdStr))
            {
                _noticeManager.CreateOrUpdateNotice(new ZCYX.FRMSCore.Application.NoticePublishInput()
                {
                    Title         = input.Title,
                    Content       = input.Content,
                    NoticeUserIds = userIdStr,
                    NoticeType    = 1
                });
            }
        }
Beispiel #3
0
        /// <summary>
        /// 课程推荐成功后给推荐人发消息
        /// </summary>
        /// <param name="eventParams"></param>
        public void SendMessageForRecommendUser(WorkFlowCustomEventParams eventParams)
        {
            var id        = Guid.Parse(eventParams.InstanceID);
            var recommend = _repository.Get(id);

            if (recommend != null && (recommend.CreatorUserId ?? 0) != 0)
            {
                _noticeManager.CreateOrUpdateNotice(new NoticePublishInput()
                {
                    Title         = "课程推荐回复通知",
                    Content       = "感谢您提供的宝贵资源,我们已经收到,期待您更多的分享",
                    NoticeUserIds = recommend.CreatorUserId.ToString(),
                    NoticeType    = 1
                });
            }
        }