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); } } }
public static AccountInvitationViewModel Map(AccountInvitation accountInvitation) { return(AutoMapper.Mapper.Map <AccountInvitationViewModel>(accountInvitation)); }