コード例 #1
0
        public QuoteItem Accept(Guid quoteItemId)
        {
            if (!CurrentUser.HasRole(UserRole.Manager))
            {
                throw new DomainValidationException(Messages.InsufficientSecurity, "CurrentUser");
            }
            var quoteItem = _quoteItemRepository.GetById(quoteItemId);

            if (quoteItem == null)
            {
                throw new ArgumentException("An invalid quote item ID was supplied");
            }
            if (quoteItem.Status.Type == ListItemType.StatusQuoteAccepted)
            {
                return(quoteItem);
            }
            var quoteAcceptedStatus = _listItemRepository.GetByType(ListItemType.StatusQuoteAccepted);

            quoteItem.Status = quoteAcceptedStatus;
            var jobItem = quoteItem.JobItem;

            jobItem.Status = quoteAcceptedStatus;
            _jobItemRepository.EmitItemHistory(
                CurrentUser, jobItem.Id, 0, 0, String.Format("Item accepted on quote {0}", quoteItem.Quote.QuoteNumber), ListItemType.StatusQuoteAccepted, ListItemType.WorkTypeAdministration);
            _jobItemRepository.Update(jobItem);
            _quoteItemRepository.Update(quoteItem);
            return(quoteItem);
        }