Пример #1
0
        public void RunInvitationReminders(ISession session, ManagedSecurityContext sec)
        {
            // fetch invitations that are older than a month
            IEnumerator <AccountInvitation> invitations = session.CreateQuery(
                string.Format("FROM AccountInvitation WHERE Modified < '{0}'", DateTime.UtcNow.AddMonths(-1).ToString(DateTimeFormatInfo.InvariantInfo)))
                                                          .Enumerable <AccountInvitation>().GetEnumerator();

            while (invitations.MoveNext() && !IsStopping)
            {
                AccountInvitation invitation = invitations.Current;

                if (invitation.Created == invitation.Modified)
                {
                    try
                    {
                        // this invitation was never resent
                        ManagedAccountInvitation mi = new ManagedAccountInvitation(session, invitation);
                        mi.Send();
                    }
                    catch (ThreadAbortException)
                    {
                        throw;
                    }
                    catch (Exception ex)
                    {
                        EventLogManager.WriteEntry(string.Format("Error sending an invitation reminder to {0} <{1}>: {2}",
                                                                 invitation.Account.Id, invitation.Email, ex.Message), EventLogEntryType.Warning);
                    }
                    finally
                    {
                        invitation.Modified = DateTime.UtcNow;
                        session.Save(invitation);
                    }
                }
                else
                {
                    // delete an invitation that has not been responded to for over a month
                    session.Delete(invitation);
                }
            }
        }
Пример #2
0
 public static AccountInvitationViewModel Map(AccountInvitation accountInvitation)
 {
     return(AutoMapper.Mapper.Map <AccountInvitationViewModel>(accountInvitation));
 }