コード例 #1
0
        public void ApproveFor(Editor editor)
        {
            var request = ApprovalRequests.FirstOrDefault(ar => ar.Editor.Equals(editor));

            if (request != null)
            {
                request.Approve();
                CheckCompletion();
            }
        }
コード例 #2
0
        public void RejectFor(Editor editor, string reason)
        {
            var request = ApprovalRequests.FirstOrDefault(ar => ar.Editor.Equals(editor));

            if (request != null)
            {
                request.Reject(reason);
                CheckCompletion();
            }
        }
コード例 #3
0
        private void CheckCompletion()
        {
            if (Status != ApprovalStatus.Pending)
            {
                return;
            }

            if (ApprovalRequests.Any(r => r.Status == ApprovalStatus.Rejected))
            {
                Status = ApprovalStatus.Rejected;
                DomainEventBus.Current.Raise(new PromotionRejected(PromotionId));
                return;
            }

            if (ApprovalRequests.Count(r => r.Status == ApprovalStatus.Accepted) >= 2)
            {
                Status = ApprovalStatus.Accepted;
                DomainEventBus.Current.Raise(new PromotionApproved(PromotionId));
            }
        }
コード例 #4
0
 public ApprovalRequests GetApprovalRequests(byte[] result)
 {
     return(ApprovalRequests.ParseFrom(result));
 }