コード例 #1
0
        public StaffDetail CreateStaffDetail(Staff staff, IPersistenceContext context)
        {
            PersonNameAssembler      assembler          = new PersonNameAssembler();
            StaffGroupAssembler      groupAssembler     = new StaffGroupAssembler();
            EmailAddressAssembler    emailAssembler     = new EmailAddressAssembler();
            TelephoneNumberAssembler telephoneAssembler = new TelephoneNumberAssembler();
            AddressAssembler         addressAssembler   = new AddressAssembler();

            return(new StaffDetail(
                       staff.GetRef(),
                       staff.Id,
                       EnumUtils.GetEnumValueInfo(staff.Type),
                       assembler.CreatePersonNameDetail(staff.Name),
                       EnumUtils.GetEnumValueInfo(staff.Sex, context),
                       staff.Title,
                       staff.LicenseNumber,
                       staff.BillingNumber,
                       CollectionUtils.Map <TelephoneNumber, TelephoneDetail>(
                           staff.TelephoneNumbers,
                           delegate(TelephoneNumber tn) { return telephoneAssembler.CreateTelephoneDetail(tn, context); }),
                       CollectionUtils.Map <Address, AddressDetail>(
                           staff.Addresses,
                           delegate(Address a) { return addressAssembler.CreateAddressDetail(a, context); }),
                       CollectionUtils.Map <EmailAddress, EmailAddressDetail>(
                           staff.EmailAddresses,
                           delegate(EmailAddress ea) { return emailAssembler.CreateEmailAddressDetail(ea, context); }),
                       CollectionUtils.Map <StaffGroup, StaffGroupSummary>(
                           staff.Groups,
                           delegate(StaffGroup group) { return groupAssembler.CreateSummary(group); }),
                       ExtendedPropertyUtils.Copy(staff.ExtendedProperties),
                       staff.Deactivated,
                       staff.UserName));
        }
コード例 #2
0
        private OrderNoteDetail.GroupRecipientDetail CreateGroupRecipientDetail(StaffGroup group, bool acknowledged,
                                                                                NoteAcknowledgement acknowledgement, IPersistenceContext context)
        {
            StaffAssembler      staffAssembler      = new StaffAssembler();
            StaffGroupAssembler staffGroupAssembler = new StaffGroupAssembler();

            return(new OrderNoteDetail.GroupRecipientDetail(
                       staffGroupAssembler.CreateSummary(group),
                       acknowledged,
                       acknowledged ? acknowledgement.Time : null,
                       acknowledged ? staffAssembler.CreateStaffSummary(acknowledgement.Staff, context) : null));
        }
コード例 #3
0
        public WorklistSummary GetWorklistSummary(Worklist worklist, IPersistenceContext context)
        {
            StaffAssembler      staffAssembler = new StaffAssembler();
            StaffGroupAssembler groupAssembler = new StaffGroupAssembler();

            return(new WorklistSummary(
                       worklist.GetRef(),
                       worklist.Name,
                       worklist.Description,
                       worklist.ClassName,
                       Worklist.GetCategory(worklist.GetClass()),
                       Worklist.GetDisplayName(worklist.GetClass()),
                       worklist.Owner.IsStaffOwner ? staffAssembler.CreateStaffSummary(worklist.Owner.Staff, context) : null,
                       worklist.Owner.IsGroupOwner ? groupAssembler.CreateSummary(worklist.Owner.Group) : null));
        }
コード例 #4
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));
        }
コード例 #5
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)));
        }