示例#1
0
        public string Execute(string[] args)
        {
            Check.CheckLength(1, args);
            string teamName    = args[0];
            User   currentUser = AuthenticationManager.GetCurrentUser();

            CommandHelper.AllowInviteActionsOrThrow(teamName, currentUser);

            using (var context = new TeamBuilderContext())
            {
                Invitation invitation = context.Invitations.FirstOrDefault(i => i.Team.Name == teamName);
                currentUser.ReceivedInvitaions.Remove(invitation);
                context.Invitations.Remove(invitation);
                context.SaveChanges();
            }
            return($"Invite from {teamName} declined.");
        }
示例#2
0
        public string Execute(string[] args)
        {
            Check.CheckLength(1, args);
            string teamName    = args[0];
            User   currentUser = AuthenticationManager.GetCurrentUser();

            CommandHelper.AllowInviteActionsOrThrow(teamName, currentUser);

            Invitation invitation = currentUser.ReceivedInvitaions
                                    .FirstOrDefault(i => i.Team.Name == teamName);

            using (var context = new TeamBuilderContext())
            {
                invitation.IsActive = false;
                Team team = invitation.Team;

                UserTeam userTeam = new UserTeam
                {
                    User   = currentUser,
                    UserId = currentUser.Id,
                    Team   = team,
                    TeamId = team.Id
                };

                context.Entry(invitation).State  = EntityState.Modified;
                context.Entry(currentUser).State = EntityState.Modified;
                context.Entry(team).State        = EntityState.Modified;
                context.Entry(userTeam).State    = EntityState.Added;

                team.UserTeams.Add(userTeam);
                currentUser.UserTeams.Add(userTeam);

                context.SaveChanges();
            }

            return($"User {currentUser.Username} joined team {teamName}!");
        }