コード例 #1
0
        /// <summary>
        /// Creates an <see cref="OrderNoteSummary"/> from a <see cref="OrderNote"/>.
        /// </summary>
        /// <param name="orderNote"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public OrderNoteSummary CreateOrderNoteSummary(OrderNote orderNote, IPersistenceContext context)
        {
            StaffAssembler      staffAssembler = new StaffAssembler();
            StaffGroupAssembler groupAssembler = new StaffGroupAssembler();

            return(new OrderNoteSummary(
                       orderNote.OID == null ? null : orderNote.GetRef(), // may be a virtual order note, which is transient
                       orderNote.Category,
                       orderNote.CreationTime,
                       orderNote.PostTime,
                       staffAssembler.CreateStaffSummary(orderNote.Author, context),
                       orderNote.OnBehalfOfGroup == null ? null : groupAssembler.CreateSummary(orderNote.OnBehalfOfGroup),
                       orderNote.IsFullyAcknowledged,
                       orderNote.Urgent,
                       orderNote.Body));
        }
コード例 #2
0
        /// <summary>
        /// Creates an <see cref="OrderNoteDetail"/> from a <see cref="OrderNote"/>.
        /// </summary>
        /// <param name="orderNote"></param>
        /// <param name="currentUserStaff"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public OrderNoteDetail CreateOrderNoteDetail(OrderNote orderNote, Staff currentUserStaff, IPersistenceContext context)
        {
            List <OrderNoteDetail.StaffRecipientDetail> staffRecipients = new List <OrderNoteDetail.StaffRecipientDetail>();
            List <OrderNoteDetail.GroupRecipientDetail> groupRecipients = new List <OrderNoteDetail.GroupRecipientDetail>();

            // if the note has been posted, construct the recipients list from the postings, so we can get the ACK status
            if (orderNote.IsPosted)
            {
                foreach (NotePosting posting in orderNote.Postings)
                {
                    if (posting is GroupNotePosting)
                    {
                        groupRecipients.Add(
                            CreateGroupRecipientDetail(((GroupNotePosting)posting).Recipient,
                                                       posting.IsAcknowledged,
                                                       posting.AcknowledgedBy, context));
                    }
                    else
                    {
                        staffRecipients.Add(
                            CreateStaffRecipientDetail(((StaffNotePosting)posting).Recipient,
                                                       posting.IsAcknowledged,
                                                       posting.AcknowledgedBy, context));
                    }
                }
            }

            StaffAssembler      staffAssembler = new StaffAssembler();
            StaffGroupAssembler groupAssembler = new StaffGroupAssembler();

            return(new OrderNoteDetail(
                       orderNote.GetRef(),
                       orderNote.Category,
                       orderNote.CreationTime,
                       orderNote.PostTime,
                       staffAssembler.CreateStaffSummary(orderNote.Author, context),
                       orderNote.OnBehalfOfGroup == null ? null : groupAssembler.CreateSummary(orderNote.OnBehalfOfGroup),
                       orderNote.Urgent,
                       staffRecipients,
                       groupRecipients,
                       orderNote.Body,
                       currentUserStaff == null ? false : orderNote.CanAcknowledge(currentUserStaff)));
        }