/// <summary> /// Search for RelationshipToCustomer items /// </summary> /// <param name="currentUser"></param> /// <param name="user"></param> /// <param name="appID"></param> /// <param name="overrideID"></param> /// <param name="searchCriteria"></param> /// <param name="page"></param> /// <param name="pageSize"></param> /// <param name="includeInActive"></param> /// <param name="specification"></param> /// <param name="dataRepository"></param> /// <param name="uow"></param> /// <returns></returns> public RelationshipToCustomerSearchVMDC SearchRelationshipToCustomer(string currentUser, string user, string appID, string overrideID, RelationshipToCustomerSearchCriteriaDC searchCriteria, int page, int pageSize, bool includeInActive, ISpecification <RelationshipToCustomer> specification, ISpecification <RelationshipToCustomer> isActiveSpecification, IRepository <RelationshipToCustomer> dataRepository, IUnitOfWork uow, IExceptionManager exceptionManager, IMappingService mappingService) { try { #region Parameter validation // Validate parameters if (string.IsNullOrEmpty(currentUser)) { throw new ArgumentOutOfRangeException("currentUser"); } if (string.IsNullOrEmpty(user)) { throw new ArgumentOutOfRangeException("user"); } if (string.IsNullOrEmpty(appID)) { throw new ArgumentOutOfRangeException("appID"); } if (null == dataRepository) { throw new ArgumentOutOfRangeException("dataRepository"); } if (null == specification) { throw new ArgumentOutOfRangeException("specification"); } if (null == uow) { throw new ArgumentOutOfRangeException("uow"); } if (null == exceptionManager) { throw new ArgumentOutOfRangeException("exceptionManager"); } if (null == mappingService) { throw new ArgumentOutOfRangeException("mappingService"); } #endregion using (uow) { // Evaluate search criteria if supplied if (null != searchCriteria) { EvaluateRelationshipToCustomerSearchCriteria(searchCriteria, ref specification); } if (!includeInActive) { specification = specification.And(isActiveSpecification); } // Set default sort expression System.Linq.Expressions.Expression <Func <RelationshipToCustomer, Object> > sortExpression = x => new { x.Description }; // Find all items that satisfy the specification created above. IEnumerable <RelationshipToCustomer> dataEntities = dataRepository.Find(specification, sortExpression, page, pageSize); // Get total count of items for search critera int itemCount = dataRepository.Count(specification); RelationshipToCustomerSearchVMDC results = new RelationshipToCustomerSearchVMDC(); // Convert to data contracts List <RelationshipToCustomerSearchMatchDC> destinations = mappingService.Map <IEnumerable <RelationshipToCustomer>, List <RelationshipToCustomerSearchMatchDC> >(dataEntities); results.MatchList = destinations; results.SearchCriteria = searchCriteria; results.RecordCount = itemCount; return(results); } } catch (Exception e) { //Prevent exception from propogating across the service interface exceptionManager.ShieldException(e); return(null); } }
// Partial method for evaluation of RelationshipToCustomer search criteria partial void EvaluateRelationshipToCustomerSearchCriteria(RelationshipToCustomerSearchCriteriaDC searchCriteria, ref ISpecification <RelationshipToCustomer> specification);
/// <summary> /// Search for RelationshipToCustomer items /// </summary> /// <param name="currentUser"></param> /// <param name="user"></param> /// <param name="appID"></param> /// <param name="overrideID"></param> /// <param name="searchCriteria"></param> /// <param name="page"></param> /// <param name="pageSize"></param> /// <param name="includeInActive"></param> /// <returns></returns> public RelationshipToCustomerSearchVMDC SearchRelationshipToCustomer(string currentUser, string user, string appID, string overrideID, RelationshipToCustomerSearchCriteriaDC searchCriteria, int page, int pageSize, bool includeInActive) { // Create unit of work IUnitOfWork uow = new UnitOfWork(currentUser); // Create repository IRepository <RelationshipToCustomer> dataRepository = new Repository <RelationshipToCustomer>(uow.ObjectContext, currentUser, user, appID, overrideID); // Create specification for filtering ISpecification <RelationshipToCustomer> specification = new Specification <RelationshipToCustomer>(); // Create isActive specification ISpecification <RelationshipToCustomer> isActiveSpecification = new IsActiveSpecification <RelationshipToCustomer>(); //Create ExceptionManager IExceptionManager exceptionManager = new ExceptionManager(); //Create MappingService IMappingService mappingService = new MappingService(); // Call overload with injected objects return(SearchRelationshipToCustomer(currentUser, user, appID, overrideID, searchCriteria, page, pageSize, includeInActive, specification, isActiveSpecification, dataRepository, uow, exceptionManager, mappingService)); }