Exemple #1
0
        public ListDiagnosticServicesResponse ListDiagnosticServices(ListDiagnosticServicesRequest request)
        {
            Platform.CheckForNullReference(request, "request");

            DiagnosticServiceSearchCriteria where = new DiagnosticServiceSearchCriteria();
            where.Id.SortAsc(0);
            if (!string.IsNullOrEmpty(request.Id))
            {
                where.Id.StartsWith(request.Id);
            }
            if (!string.IsNullOrEmpty(request.Name))
            {
                where.Name.Like(string.Format("%{0}%", request.Name));
            }
            if (!request.IncludeDeactivated)
            {
                where.Deactivated.EqualTo(false);
            }

            IDiagnosticServiceBroker  broker = PersistenceContext.GetBroker <IDiagnosticServiceBroker>();
            IList <DiagnosticService> items  = broker.Find(where, request.Page);

            DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler();

            return(new ListDiagnosticServicesResponse(
                       CollectionUtils.Map <DiagnosticService, DiagnosticServiceSummary>(items,
                                                                                         delegate(DiagnosticService item)
            {
                return assembler.CreateSummary(item);
            })
                       ));
        }
Exemple #2
0
 public DeleteDiagnosticServiceResponse DeleteDiagnosticService(DeleteDiagnosticServiceRequest request)
 {
     try
     {
         IDiagnosticServiceBroker broker = PersistenceContext.GetBroker <IDiagnosticServiceBroker>();
         DiagnosticService        item   = broker.Load(request.DiagnosticServiceRef, EntityLoadFlags.Proxy);
         broker.Delete(item);
         PersistenceContext.SynchState();
         return(new DeleteDiagnosticServiceResponse());
     }
     catch (PersistenceException)
     {
         throw new RequestValidationException(string.Format(SR.ExceptionFailedToDelete, TerminologyTranslator.Translate(typeof(DiagnosticService))));
     }
 }
Exemple #3
0
        public TextQueryResponse <DiagnosticServiceSummary> TextQuery(TextQueryRequest request)
        {
            IDiagnosticServiceBroker   broker    = PersistenceContext.GetBroker <IDiagnosticServiceBroker>();
            DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler();

            TextQueryHelper <DiagnosticService, DiagnosticServiceSearchCriteria, DiagnosticServiceSummary> helper
                = new TextQueryHelper <DiagnosticService, DiagnosticServiceSearchCriteria, DiagnosticServiceSummary>(
                      delegate
            {
                string rawQuery = request.TextQuery;

                IList <string> terms = TextQueryHelper.ParseTerms(rawQuery);
                List <DiagnosticServiceSearchCriteria> criteria = new List <DiagnosticServiceSearchCriteria>();

                // allow matching on name (assume entire query is a name which may contain spaces)
                DiagnosticServiceSearchCriteria nameCriteria = new DiagnosticServiceSearchCriteria();
                nameCriteria.Name.StartsWith(rawQuery);
                criteria.Add(nameCriteria);

                // allow matching of any term against ID
                criteria.AddRange(CollectionUtils.Map <string, DiagnosticServiceSearchCriteria>(terms,
                                                                                                delegate(string term)
                {
                    DiagnosticServiceSearchCriteria c = new DiagnosticServiceSearchCriteria();
                    c.Id.StartsWith(term);
                    return(c);
                }));

                return(criteria.ToArray());
            },
                      delegate(DiagnosticService ds)
            {
                return(assembler.CreateSummary(ds));
            },
                      delegate(DiagnosticServiceSearchCriteria[] criteria, int threshold)
            {
                return(broker.Count(criteria) <= threshold);
            },
                      delegate(DiagnosticServiceSearchCriteria[] criteria, SearchResultPage page)
            {
                return(broker.Find(criteria, page));
            });

            return(helper.Query(request));
        }