public override int CreateOrUpdate(TransitAccountGroupAccountInvitation t_instance, ManagedSecurityContext sec) { ManagedAccountGroup m_group = new ManagedAccountGroup(Session, t_instance.AccountGroupId); ManagedAccount m_account = new ManagedAccount(Session, t_instance.AccountId); if (m_group.HasAccountInvitation(t_instance.AccountId) || m_group.HasAccountRequest(t_instance.AccountId)) { throw new Exception(string.Format("An invitation for {0} to join \"{1}\" is already pending.", m_account.Instance.Name, m_group.Instance.Name)); } if (m_group.HasAccount(t_instance.AccountId)) { throw new Exception(string.Format("{0} is already a member of \"{1}\".", m_account.Name, m_group.Instance.Name)); } int id = base.CreateOrUpdate(t_instance, sec); Session.Flush(); ManagedAccount recepient = new ManagedAccount(Session, t_instance.AccountId); ManagedSiteConnector.TrySendAccountEmailMessageUriAsAdmin( Session, recepient, string.Format("EmailAccountGroupAccountInvitation.aspx?id={0}", id)); return(id); }
public override int CreateOrUpdate(TransitAccountGroupAccountRequest t_instance, ManagedSecurityContext sec) { ManagedAccountGroup m_group = new ManagedAccountGroup(Session, t_instance.AccountGroupId); if (m_group.HasAccountRequest(t_instance.AccountId)) { throw new Exception(string.Format( "You already have a membership request pending to join \"{0}\".", m_group.Instance.Name)); } if (m_group.HasAccount(t_instance.AccountId)) { throw new Exception(string.Format( "You are already a member of \"{0}\".", m_group.Instance.Name)); } int id = base.CreateOrUpdate(t_instance, sec); Session.Flush(); foreach (AccountGroupAccount accountadmin in Collection <AccountGroupAccount> .GetSafeCollection(mInstance.AccountGroup.AccountGroupAccounts)) { if (accountadmin.IsAdministrator) { ManagedAccount recepient = new ManagedAccount(Session, accountadmin.Account.Id); ManagedSiteConnector.TrySendAccountEmailMessageUriAsAdmin( Session, recepient, string.Format("EmailAccountGroupAccountRequest.aspx?id={0}", id)); } } return(id); }