private void SetProcessMessagesHandler() { try { using (var teamLock = PlanningPoker.GetScrumTeam(TeamName)) { teamLock.Lock(); var team = teamLock.Team; var member = team.FindMemberOrObserver(MemberName); // Removes old messages, which the member has already read, from the member's message queue. while (member.HasMessage && member.Messages.First().Id <= LastMessageId) { member.PopMessage(); } // Updates last activity on member to record time, when member checked for new messages. // also notifies to save the team into repository member.UpdateActivity(); PlanningPoker.GetMessagesAsync(member, ProcessMessages); } } catch (Exception ex) { ThrowException(ex); } }
private NodeMessage CreateTeamCreatedMessage(string teamName) { using (var teamLock = PlanningPoker.GetScrumTeam(teamName)) { teamLock.Lock(); var team = teamLock.Team; return(new NodeMessage(NodeMessageType.TeamCreated) { Data = SerializeScrumTeam(team) }); } }
private void OnEstimationCanceledMessage(string teamName) { using (var teamLock = PlanningPoker.GetScrumTeam(teamName)) { teamLock.Lock(); var team = teamLock.Team; try { _processingScrumTeamName = team.Name; team.ScrumMaster.CancelEstimation(); } finally { _processingScrumTeamName = null; } } }
private void OnMemberDisconnectedMessage(string teamName, ScrumTeamMemberMessage message) { using (var teamLock = PlanningPoker.GetScrumTeam(teamName)) { teamLock.Lock(); var team = teamLock.Team; try { _processingScrumTeamName = team.Name; team.Disconnect(message.MemberName); } finally { _processingScrumTeamName = null; } } }
private void OnMemberJoinedMessage(string teamName, ScrumTeamMemberMessage message) { using (var teamLock = PlanningPoker.GetScrumTeam(teamName)) { teamLock.Lock(); var team = teamLock.Team; try { _processingScrumTeamName = team.Name; team.Join(message.MemberName, string.Equals(message.MemberType, typeof(Observer).Name, StringComparison.OrdinalIgnoreCase)); } finally { _processingScrumTeamName = null; } } }
private NodeMessage CreateTeamCreatedMessage(string teamName) { try { using (var teamLock = PlanningPoker.GetScrumTeam(teamName)) { teamLock.Lock(); var team = teamLock.Team; return(new NodeMessage(NodeMessageType.TeamCreated) { Data = SerializeScrumTeam(team) }); } } catch (Exception ex) { _logger.LogError(ex, Resources.Error_CreateTeamNodeMessage, teamName, NodeId); return(null); } }
private void OnMemberActivityMessage(string teamName, ScrumTeamMemberMessage message) { using (var teamLock = PlanningPoker.GetScrumTeam(teamName)) { teamLock.Lock(); var team = teamLock.Team; try { _processingScrumTeamName = team.Name; var observer = team.FindMemberOrObserver(message.MemberName); if (observer != null) { observer.UpdateActivity(); } } finally { _processingScrumTeamName = null; } } }
private void OnMemberEstimatedMessage(string teamName, ScrumTeamMemberEstimationMessage message) { using (var teamLock = PlanningPoker.GetScrumTeam(teamName)) { teamLock.Lock(); var team = teamLock.Team; try { _processingScrumTeamName = team.Name; var member = team.FindMemberOrObserver(message.MemberName) as Member; if (member != null) { member.Estimation = new Estimation(message.Estimation); } } finally { _processingScrumTeamName = null; } } }
private void ProcessRequestTeamsMessage(NodeMessage message) { _logger?.LogInformation(Resources.Info_NodeMessageReceived, NodeId, message.SenderNodeId, message.RecipientNodeId, message.MessageType); var scrumTeamNames = (IEnumerable <string>)message.Data; foreach (var scrumTeamName in scrumTeamNames) { try { string scrumTeamData = null; try { using (var teamLock = PlanningPoker.GetScrumTeam(scrumTeamName)) { teamLock.Lock(); scrumTeamData = SerializeScrumTeam(teamLock.Team); } } catch (Exception) { scrumTeamData = null; } var initializeTeamMessage = new NodeMessage(NodeMessageType.InitializeTeam) { RecipientNodeId = message.SenderNodeId, Data = scrumTeamData != null ? scrumTeamData : (DeletedTeamPrefix + scrumTeamName) }; SendNodeMessage(initializeTeamMessage); } catch (Exception) { } } }