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)); }
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)); }
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)); }
/// <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)); }
/// <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))); }