Ejemplo n.º 1
0
        // note: this operation is not protected with ClearCanvas.Ris.Application.Common.AuthorityTokens.StaffAdmin
        // because it is used in non-admin situations - perhaps we need to create a separate operation???
        public ListStaffResponse ListStaff(ListStaffRequest request)
        {
            var assembler = new StaffAssembler();

            var criteria = new StaffSearchCriteria();

            criteria.Name.FamilyName.SortAsc(0);

            if (!string.IsNullOrEmpty(request.StaffID))
            {
                ApplyCondition(criteria.Id, request.StaffID, request.ExactMatch);
            }

            if (!string.IsNullOrEmpty(request.GivenName))
            {
                ApplyCondition(criteria.Name.GivenName, request.GivenName, request.ExactMatch);
            }

            if (!string.IsNullOrEmpty(request.FamilyName))
            {
                ApplyCondition(criteria.Name.FamilyName, request.FamilyName, request.ExactMatch);
            }

            if (!string.IsNullOrEmpty(request.UserName))
            {
                criteria.UserName.EqualTo(request.UserName);
            }

            if (!request.IncludeDeactivated)
            {
                criteria.Deactivated.EqualTo(false);
            }

            ApplyStaffTypesFilter(request.StaffTypesFilter, new [] { criteria });

            return(new ListStaffResponse(
                       CollectionUtils.Map <Staff, StaffSummary, List <StaffSummary> >(
                           PersistenceContext.GetBroker <IStaffBroker>().Find(criteria, request.Page),
                           s => assembler.CreateStaffSummary(s, PersistenceContext))));
        }
Ejemplo n.º 2
0
        public IHttpActionResult Get([FromUri] ListStaffRequest request)
        {
            var result = _listStaffRequestProcessor.Process(request);

            return(Ok(result));
        }