Example #1
0
        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;
 }
Example #5
0
 public AddStaffGroupRequest(StaffGroupDetail staffGroup)
 {
     this.StaffGroup = staffGroup;
 }
 public LoadStaffGroupForEditResponse(StaffGroupDetail staffGroup)
 {
     this.StaffGroup = staffGroup;
 }
Example #7
0
 public UpdateStaffGroupRequest(StaffGroupDetail staffGroup)
 {
     this.StaffGroup = staffGroup;
 }
Example #8
0
        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();
        }