public void UpdateStaffGroup(StaffGroup group, StaffGroupDetail detail, bool updateWorklist, bool isNewStaffGroup, IPersistenceContext context) { group.Name = detail.Name; group.Description = detail.Description; group.Elective = detail.IsElective; group.Deactivated = detail.Deactivated; group.Members.Clear(); CollectionUtils.ForEach(detail.Members, delegate(StaffSummary summary) { group.AddMember(context.Load <Staff>(summary.StaffRef, EntityLoadFlags.Proxy)); }); if (updateWorklist) { StaffGroupWorklistCollectionSynchronizeHelper helper = new StaffGroupWorklistCollectionSynchronizeHelper(group, context); IList <Worklist> originalWorklists = isNewStaffGroup ? new List <Worklist>() : context.GetBroker <IWorklistBroker>().Find(group); helper.Synchronize(originalWorklists, detail.Worklists); } }
public UpdateStaffGroupRequest(StaffGroupDetail staffGroup) { this.StaffGroup = staffGroup; }
public AddStaffGroupRequest(StaffGroupDetail staffGroup) { this.StaffGroup = staffGroup; }
public LoadStaffGroupForEditResponse(StaffGroupDetail staffGroup) { this.StaffGroup = staffGroup; }
public override void Start() { LoadStaffGroupEditorFormDataResponse formDataResponse = null; Platform.GetService <IStaffGroupAdminService>(service => { formDataResponse = service.LoadStaffGroupEditorFormData( new LoadStaffGroupEditorFormDataRequest()); if (_staffGroupRef == null) { _staffGroupDetail = new StaffGroupDetail(); } else { var response = service.LoadStaffGroupForEdit(new LoadStaffGroupForEditRequest(_staffGroupRef)); _staffGroupRef = response.StaffGroup.StaffGroupRef; _staffGroupDetail = response.StaffGroup; } }); _detailsEditor = new StaffGroupDetailsEditorComponent { StaffGroupDetail = _staffGroupDetail }; _staffEditor = new SelectorEditorComponent <StaffSummary, StaffTable>( formDataResponse.AllStaff, _staffGroupDetail.Members, staff => staff.StaffRef); var isWorklistEditorReadOnly = Thread.CurrentPrincipal.IsInRole(Application.Common.AuthorityTokens.Admin.Data.Worklist) == false; _worklistEditor = new SelectorEditorComponent <WorklistSummary, WorklistTable>( formDataResponse.AllAdminWorklists, _staffGroupDetail.Worklists, worklist => worklist.WorklistRef, isWorklistEditorReadOnly); this.Pages.Add(new NavigatorPage("Staff Group", _detailsEditor)); this.Pages.Add(new NavigatorPage("Staff Group/Members", _staffEditor)); this.Pages.Add(new NavigatorPage( isWorklistEditorReadOnly ? "Staff Group/Subscribed Worklists (read only)" : "Staff Group/Subscribed Worklists", _worklistEditor)); // instantiate all extension pages _extensionPages = new List <IStaffGroupEditorPage>(); foreach (IStaffGroupEditorPageProvider pageProvider in new StaffGroupEditorPageProviderExtensionPoint().CreateExtensions()) { _extensionPages.AddRange(pageProvider.GetPages(new EditorContext(this))); } // add extension pages to navigator // the navigator will start those components if the user goes to that page foreach (var page in _extensionPages) { this.Pages.Add(new NavigatorPage(page.Path, page.GetComponent())); } base.Start(); }