コード例 #1
0
ファイル: WebGroupService.cs プロジェクト: qwdf1615/sncore
        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.");
                }
            }
        }
コード例 #2
0
ファイル: WebAccountService.cs プロジェクト: dblock/sncore
        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;
            }
        }
コード例 #3
0
ファイル: WebGroupService.cs プロジェクト: dblock/sncore
        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.");
                }
            }
        }