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;
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 6
0
        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;
 }
Ejemplo n.º 11
0
 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<タスク>();
        }
Ejemplo n.º 13
0
        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);
     }
 }