/// <summary> /// Initializes a new instance of the <see cref="ScrumTeam"/> class. /// </summary> /// <param name="scrumTeamData">Scrum Team serialization data.</param> /// <param name="dateTimeProvider">The date time provider to provide current time. If null is specified, then default date time provider is used.</param> /// <param name="guidProvider">The GUID provider to provide new GUID objects. If null is specified, then default GUID provider is used.</param> public ScrumTeam(Serialization.ScrumTeamData scrumTeamData, DateTimeProvider dateTimeProvider, GuidProvider guidProvider) { if (scrumTeamData == null) { throw new ArgumentNullException(nameof(scrumTeamData)); } if (string.IsNullOrEmpty(scrumTeamData.Name)) { throw new ArgumentException("Scrum Team name cannot be empty.", nameof(scrumTeamData)); } DateTimeProvider = dateTimeProvider ?? DateTimeProvider.Default; _guidProvider = guidProvider ?? GuidProvider.Default; Name = scrumTeamData.Name; AvailableEstimations = scrumTeamData.AvailableEstimations.ToArray(); State = scrumTeamData.State; if (scrumTeamData.Members != null) { DeserializeMembers(scrumTeamData); } DeserializeEstimationResult(scrumTeamData); if (scrumTeamData.Members != null) { foreach (var memberData in scrumTeamData.Members) { var member = FindMemberOrObserver(memberData.Name); member.DeserializeMessages(memberData); } } }
/// <summary> /// Initializes a new instance of the <see cref="ScrumTeam"/> class. /// </summary> /// <param name="name">The team name.</param> /// <param name="availableEstimations">The collection of available estimation values.</param> /// <param name="dateTimeProvider">The date time provider to provide current time. If null is specified, then default date time provider is used.</param> /// <param name="guidProvider">The GUID provider to provide new GUID objects. If null is specified, then default GUID provider is used.</param> public ScrumTeam(string name, IEnumerable <Estimation> availableEstimations, DateTimeProvider dateTimeProvider, GuidProvider guidProvider) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } DateTimeProvider = dateTimeProvider ?? DateTimeProvider.Default; _guidProvider = guidProvider ?? GuidProvider.Default; Name = name; AvailableEstimations = availableEstimations ?? DeckProvider.Default.GetDefaultDeck(); }