public void RejectAccountGroupAccountInvitation(string ticket, int id, string message) { using (SnCore.Data.Hibernate.Session.OpenConnection()) { ISession session = SnCore.Data.Hibernate.Session.Current; ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket); try { ManagedAccountGroupAccountInvitation req = new ManagedAccountGroupAccountInvitation(session, id); req.Reject(sec, message); SnCore.Data.Hibernate.Session.Flush(); } catch (NHibernate.ObjectNotFoundException) { throw new Exception("This invitation cannot be found. You may have already rejected it."); } } }
public int CreateAccountWithInvitation(int invitationid, string code, TransitAccount ta) { using (SnCore.Data.Hibernate.Session.OpenConnection()) { ISession session = SnCore.Data.Hibernate.Session.Current; ManagedAccountInvitation invitation = new ManagedAccountInvitation(session, invitationid); if (invitation.Code != code) { throw new ManagedAccount.AccessDeniedException(); } ManagedAccount acct = new ManagedAccount(session); int id = acct.Create(invitation.Instance.Email, ta, true, ManagedAccount.GetAdminSecurityContext(session)); // become friends with the person who invited you TransitAccountFriend t_friend = new TransitAccountFriend(); AccountFriend friend = new AccountFriend(); friend.Account = session.Load<Account>(invitation.AccountId); friend.Keen = session.Load<Account>(id); friend.Created = DateTime.UtcNow; session.Save(friend); SnCore.Data.Hibernate.Session.Flush(); // notify that a friend has joined ManagedAccount recepient = new ManagedAccount(session, invitation.AccountId); ManagedSiteConnector.TrySendAccountEmailMessageUriAsAdmin(session, recepient, string.Format("EmailAccountInvitationAccept.aspx?id={0}&aid={1}", invitation.Id, id)); // if this is a group invitation, join the group if (invitation.Instance.AccountGroup != null) { AccountGroupAccountInvitation groupInvitation = new AccountGroupAccountInvitation(); groupInvitation.Account = session.Load<Account>(id); groupInvitation.AccountGroup = invitation.Instance.AccountGroup; groupInvitation.Created = invitation.Instance.Created; groupInvitation.Modified = invitation.Instance.Modified; groupInvitation.Requester = session.Load<Account>(invitation.AccountId); ManagedAccountGroupAccountInvitation mGroupInvitation = new ManagedAccountGroupAccountInvitation( session, groupInvitation); mGroupInvitation.JoinGroup(ManagedAccount.GetAdminSecurityContext(session), string.Empty); } invitation.Delete(ManagedAccount.GetAdminSecurityContext(session)); SnCore.Data.Hibernate.Session.Flush(); return acct.Id; } }
public void RejectAccountGroupAccountInvitation(string ticket, int id, string message) { using (SnCore.Data.Hibernate.Session.OpenConnection()) { ISession session = SnCore.Data.Hibernate.Session.Current; ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket); try { ManagedAccountGroupAccountInvitation req = new ManagedAccountGroupAccountInvitation(session, id); req.Reject(sec, message); SnCore.Data.Hibernate.Session.Flush(); } catch (NHibernate.ObjectNotFoundException) { throw new Exception("This invitation cannot be found. You may have already rejected it."); } } }