public void ChangeTeamMemberName(チームメンバー名変更コマンド command) { var tenantId = new テナントId(command.TenantId); アプリケーションサービスライフサイクル.Begin(); try { var productOwner = this.productOwnerRepository.Get(tenantId, command.Username); if (productOwner != null) { productOwner.ChangeName(command.FirstName, command.LastName, command.OccurredOn); this.productOwnerRepository.Save(productOwner); } var teamMember = this.teamMemberRepository.Get(tenantId, command.Username); if (teamMember != null) { teamMember.ChangeName(command.FirstName, command.LastName, command.OccurredOn); this.teamMemberRepository.Save(teamMember); } アプリケーションサービスライフサイクル.Success(); } catch (Exception ex) { アプリケーションサービスライフサイクル.Fail(ex); } }
public プロダクトディスカッション初期時(テナントId tenantId, プロダクトId productId, プロダクトディスカッション productDiscussion) { this.EventVersion = 1; this.OccurredOn = DateTime.Now; this.ProductDiscussion = productDiscussion; this.ProductId = productId; this.TenantId = tenantId; }
public チーム(テナントId tenantId, string name, プロダクトオーナ productOwner = null) { AssertionConcern.AssertArgumentNotNull(tenantId, "The tenantId must be provided."); this.tenantId = tenantId; this.Name = name; if (productOwner != null) this.ProductOwner = productOwner; this.teamMembers = new HashSet<チームメンバ>(); }
public プロダクトオーナ( テナントId tenantId, string username, string firstName, string lastName, string emailAddress, DateTime initializedOn) : base(tenantId, username, firstName, lastName, emailAddress, initializedOn) { }
public void CommitBacklogItemToSprint(バックログアイテムをスプリントにコミットするコマンド command) { var tenantId = new テナントId(command.TenantId); var sprint = this.sprintRepository.Get(tenantId, new スプリントId(command.SprintId)); var backlogItem = this.backlogItemRepository.Get(tenantId, new バックログアイテムId(command.BacklogItemId)); sprint.Commit(backlogItem); this.sprintRepository.Save(sprint); }
public メンバ( テナントId tenantId, string userName, string firstName, string lastName, string emailAddress, DateTime initializedOn) { AssertionConcern.AssertArgumentNotNull(tenantId, "The tenant id must be provided."); this.TenantId = tenantId; this.EmailAddress = emailAddress; this.Enabled = true; this.FirstName = firstName; this.LastName = lastName; this.changeTracker = new メンバ変更トラッカー(initializedOn, initializedOn, initializedOn); }
public プロダクトディスカッションリクエスト時( テナントId tenantId, プロダクトId productId, プロダクトオーナId productOwnerId, string name, string description, bool requestingDiscussion) { this.Description = description; this.EventVersion = 1; this.Name = name; this.OccurredOn = DateTime.Now; this.ProductId = productId; this.ProductOwnerId = productOwnerId; this.RequestingDiscussion = requestingDiscussion; this.TenantId = tenantId; }
public プロダクト作成時( テナントId tenantId, プロダクトId productId, プロダクトオーナId productOwnerId, string name, string description, ディスカッションアベイラビリティ availability) { this.Availability = availability; this.Description = description; this.EventVersion = 1; this.Name = name; this.OccurredOn = DateTime.Now; this.ProductId = productId; this.ProductOwnerId = productOwnerId; this.TenantId = tenantId; }
public プロダクトリリーススケジュール時( テナントId tenantId, プロダクトId productId, リリースId releaseId, string name, string description, DateTime starts, DateTime ends) { this.Description = description; this.Ends = ends; this.EventVersion = 1; this.Name = name; this.OccurredOn = DateTime.Now; this.ProductId = productId; this.ReleaseId = releaseId; this.Starts = starts; this.TenantId = tenantId; }
public プロダクトスプリントスケジュール時( テナントId tenantId, プロダクトId productId, スプリントId sprintId, string name, string goals, DateTime starts, DateTime ends) { this.Ends = ends; this.EventVersion = 1; this.Goals = goals; this.Name = name; this.OccurredOn = DateTime.Now; this.ProductId = productId; this.SprintId = sprintId; this.Starts = starts; this.TenantId = tenantId; }
public タスク( テナントId tenantId, バックログアイテムId backlogItemId, タスクId taskId, チームメンバ teamMember, string name, string description, int hoursRemaining, タスクステータス status) { this.TenantId = tenantId; this.BacklogItemId = backlogItemId; this.TaskId = taskId; this.Volunteer = teamMember.TeamMemberId; this.Name = name; this.Description = description; this.HoursRemaining = hoursRemaining; this.Status = status; this.estimationLog = new List<見積りログエントリー>(); }
public バックログアイテム( テナントId tenantId, プロダクトId productId, バックログアイテムId backlogItemId, string summary, string category, バックログアイテムタイプ type, バックログアイテムステータス backlogItemStatus, ストーリポイント storyPoints) { this.BacklogItemId = backlogItemId; this.Category = category; this.ProductId = productId; this.Status = backlogItemStatus; this.StoryPoints = storyPoints; this.Summary = summary; this.TenantId = tenantId; this.Type = type; this.tasks = new List<タスク>(); }
public リリース( テナントId tenantId, プロダクトId productId, リリースId releaseId, string name, string description, DateTime begins, DateTime ends) { if (ends.Ticks < begins.Ticks) throw new InvalidOperationException("Release must not end before it begins."); this.Begins = begins; this.Description = description; this.Ends = ends; this.Name = name; this.ProductId = productId; this.ReleaseId = releaseId; this.TenantId = tenantId; this.backlogItems = new HashSet<計画済みバックログアイテム>(); }
public プロダクトオーナId(テナントId tenantId, string id) : base(tenantId + ":" + id) { }
public void DisableProductOwner(プロダクトオーナーコマンド無効化 command) { var tenantId = new テナントId(command.TenantId); アプリケーションサービスライフサイクル.Begin(); try { var productOwner = this.productOwnerRepository.Get(tenantId, command.Username); if (productOwner != null) { productOwner.Disable(command.OccurredOn); this.productOwnerRepository.Save(productOwner); } アプリケーションサービスライフサイクル.Success(); } catch (Exception ex) { アプリケーションサービスライフサイクル.Fail(ex); } }
public void EnableTeamMember(チームメンバー有効化コマンド command) { var tenantId = new テナントId(command.TenantId); アプリケーションサービスライフサイクル.Begin(); try { var teamMember = this.teamMemberRepository.Get(tenantId, command.Username); if (teamMember != null) { teamMember.Enable(command.OccurredOn); } else { teamMember = new チームメンバ(tenantId, command.Username, command.FirstName, command.LastName, command.EmailAddress, command.OccurredOn); this.teamMemberRepository.Save(teamMember); } アプリケーションサービスライフサイクル.Success(); } catch (Exception ex) { アプリケーションサービスライフサイクル.Fail(ex); } }
public void EnableProductOwner(プロダクトオーナー有効化コマンド command) { var tenantId = new テナントId(command.TenantId); アプリケーションサービスライフサイクル.Begin(); try { var productOwner = this.productOwnerRepository.Get(tenantId, command.Username); if (productOwner != null) { productOwner.Enable(command.OccurredOn); } else { productOwner = new プロダクトオーナ(tenantId, command.Username, command.FirstName, command.LastName, command.EmailAddress, command.OccurredOn); this.productOwnerRepository.Save(productOwner); } アプリケーションサービスライフサイクル.Success(); } catch (Exception ex) { アプリケーションサービスライフサイクル.Fail(ex); } }
public void DisableTeamMember(チームメンバー無効化コマンド command) { var tenantId = new テナントId(command.TenantId); アプリケーションサービスライフサイクル.Begin(); try { var teamMember = this.teamMemberRepository.Get(tenantId, command.Username); if (teamMember != null) { teamMember.Disable(command.OccurredOn); this.teamMemberRepository.Save(teamMember); } アプリケーションサービスライフサイクル.Success(); } catch (Exception ex) { アプリケーションサービスライフサイクル.Fail(ex); } }