public ListWorklistsResponse ListWorklists(ListWorklistsRequest request) { Platform.CheckForNullReference(request, "request"); var worklistClasses = ListClassesHelper(request.ClassNames, request.Categories, request.IncludeStatic); // grab the persistent worklists var broker = PersistenceContext.GetBroker <IWorklistBroker>(); var persistentClassNames = CollectionUtils.Select(worklistClasses, t => !Worklist.GetIsStatic(t)) .ConvertAll(Worklist.GetClassName); var worklists = broker.Find(request.WorklistName, request.IncludeUserDefinedWorklists, persistentClassNames, request.Page); // optionally include the static ones if (request.IncludeStatic) { foreach (var worklistClass in worklistClasses) { if (Worklist.GetIsStatic(worklistClass)) { worklists.Add(WorklistFactory.Instance.CreateWorklist(worklistClass)); } } } var adminAssembler = new WorklistAdminAssembler(); return(new ListWorklistsResponse( CollectionUtils.Map <Worklist, WorklistAdminSummary, List <WorklistAdminSummary> >( worklists, worklist => adminAssembler.CreateWorklistSummary(worklist, this.PersistenceContext)))); }
public AddWorklistResponse AddWorklist(AddWorklistRequest request) { if (string.IsNullOrEmpty(request.Detail.Name)) { throw new RequestValidationException(SR.ExceptionWorklistNameRequired); } // create instance of worklist owner var owner = CreateOwner(request.Detail, request.IsUserWorklist); // ensure user has access to create this worklist CheckAccess(owner); CheckWorklistCountRestriction(owner); // create instance of appropriate class var worklist = WorklistFactory.Instance.CreateWorklist(request.Detail.WorklistClass.ClassName); // set owner worklist.Owner = owner; // update properties UpdateWorklistHelper(request.Detail, worklist); PersistenceContext.Lock(worklist, DirtyState.New); PersistenceContext.SynchState(); var adminAssembler = new WorklistAdminAssembler(); return(new AddWorklistResponse(adminAssembler.CreateWorklistSummary(worklist, this.PersistenceContext))); }
public UpdateWorklistResponse UpdateWorklist(UpdateWorklistRequest request) { var worklist = this.PersistenceContext.Load <Worklist>(request.EntityRef); // check if user can update CheckAccess(worklist.Owner); // update UpdateWorklistHelper(request.Detail, worklist); var adminAssembler = new WorklistAdminAssembler(); return(new UpdateWorklistResponse(adminAssembler.CreateWorklistSummary(worklist, this.PersistenceContext))); }