Ejemplo n.º 1
0
        /// <summary>
        /// 获取通知需提醒信息
        /// </summary>
        /// <returns></returns>
        public IEnumerable <UserReminderInfo> GetUserReminderInfos()
        {
            var sql = PetaPoco.Sql.Builder;

            sql.Select("tn_Notices.*")
            .From("tn_Notices")
            .InnerJoin("tn_Users")
            .On("tn_Notices.UserId = tn_Users.UserId")
            .Where("tn_Notices.Status = 0")
            .Where("tn_Users.IsEmailVerified = 1")
            .OrderBy("tn_Notices.UserId")
            .OrderBy("tn_Notices.Id");
            IEnumerable <Notice>    userReminderInfos_object = CreateDAO().Fetch <Notice>(sql);
            List <UserReminderInfo> userRminderInfos         = new List <UserReminderInfo>();

            foreach (long userId in userReminderInfos_object.Select(n => n.UserId).Distinct())
            {
                UserReminderInfo userReminderInfo = new UserReminderInfo();
                userReminderInfo.UserId           = userId;
                userReminderInfo.ReminderInfoType = ReminderInfoType.Get(ReminderInfoTypeIds.Instance().Notice());
                IEnumerable <ReminderInfo> reminderInfos = userReminderInfos_object.Where(n => n.UserId == userId).Select(n => new
                                                                                                                          ReminderInfo {
                    ObjectId = n.Id, Title = n.ResolvedBody, DateCreated = n.DateCreated
                });
                foreach (var reminderInfo in reminderInfos)
                {
                    userReminderInfo.Append(reminderInfo);
                }
                userRminderInfos.Add(userReminderInfo);
            }
            return(userRminderInfos);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 发送提醒
        /// </summary>
        /// <param name="userReminderInfos">用户提醒信息</param>
        public void SendReminder(IList <UserReminderInfo> userReminderInfos)
        {
            if (userReminderInfos == null || userReminderInfos.Count == 0)
            {
                return;
            }
            UserReminderInfo userReminderInfo = userReminderInfos.First();
            IUserService     userService      = DIContainer.Resolve <IUserService>();
            IUser            user             = userService.GetUser(userReminderInfo.UserId);

            if (user != null)
            {
                EmailService emailService = new EmailService();
                emailService.Enqueue(EmailBuilder.Instance().Reminder(userReminderInfos, user));
            }
        }