protected static FR_L3ABDA_GAAfSC_1147 Execute(DbConnection Connection, DbTransaction Transaction, P_L3ABDA_GAAfSC_1147 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3ABDA_GAAfSC_1147(); returnValue.Result = new L3ABDA_GAAfSC_1147(); #region Check ABDA Catalog Subscription string catalogITL = EnumUtils.GetEnumDescription(EPublicCatalogs.ABDA); var sbsCatalog = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, new ORM_CMN_PRO_SubscribedCatalog.Query() { CatalogCodeITL = catalogITL, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).FirstOrDefault(); if (sbsCatalog == null) { return(returnValue); } #endregion string query = new QueryBuilder <Product>() .From(Parameter.FromArticle) .Size(Parameter.NumberOfArticles) .Query(q => q .Bool(b => b .Must(m => m .QueryString(qs => qs.Fields(new string[] { SearchCondition.GetFiledName(ProductField.NAME), SearchCondition.GetFiledName(ProductField.CODE) }).Query(SearchCondition.GetConditionForSearchText(Parameter.Conditions.PZNOrName))) .QueryString(qs => qs.Fields(SearchCondition.GetFiledName(ProductField.UNIT)).Query(SearchCondition.GetConditionForSearchText(Parameter.Conditions.Unit))) .QueryString(qs => qs.Fields(SearchCondition.GetFiledName(ProductField.DOSAGE_FORM)).Query(SearchCondition.GetConditionForSearchText(Parameter.Conditions.DosageForm))) .QueryString(qs => qs.Fields(SearchCondition.GetFiledName(ProductField.SUBSTANCE)).Query(SearchCondition.GetConditionForSearchText(Parameter.Conditions.ActiveComponent))) .QueryString(qs => qs.Fields(SearchCondition.GetFiledName(ProductField.PRODUCER)).Query(SearchCondition.GetConditionForSearchText(Parameter.Conditions.ProducerName))) .Prefix(p => p.Field(SearchCondition.GetFiledName(ProductField.NAME_TOKEN)).Prefix(Parameter.Conditions.ProductNameStartWith)) ) ) ) .Sort(s => s .Field(SearchCondition.GetFiledName(Parameter.Order.field), (Parameter.Order.order == SortingOrder.ASC) ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc)) .BuildBeautified(); var ProductService = CatalogServiceFactory.GetProductService(); if ((bool)Parameter.Conditions.IsDefaultStock) { List <string> ITLs = new List <string>(); ITLs = cls_Get_ITLS_for_Products_HaveFlag_IsProductPartOfDefaultStock.Invoke(Connection, Transaction, securityTicket).Result.Select(x => x.ProductITL).ToList(); ProductDetailsRequest requestWithITLS = new ProductDetailsRequest { CatalogCode = catalogITL, ProductIDs = ITLs }; var resWithITLS = ProductService.GetProductDetails(requestWithITLS); returnValue.Result.Articles = resWithITLS.ProductDetails.Where(x => Parameter.Conditions.ProducerName == string.Empty || x.Producer.ToLower().Contains(Parameter.Conditions.ProducerName.ToLower())) .Where(x => (Parameter.Conditions.DosageForm == string.Empty) || (x.Healthcare.DosageForm != null && x.Healthcare.DosageForm.ToLower().Contains(Parameter.Conditions.DosageForm.ToLower()))) .Where(x => Parameter.Conditions.PZNOrName == string.Empty || x.Name.ToLower().Contains(Parameter.Conditions.PZNOrName.ToLower()) || x.Code.ToLower().Contains(Parameter.Conditions.PZNOrName.ToLower())) .Where(x => Parameter.Conditions.Unit == string.Empty || x.Packaging.Unit.ToLower().Contains(Parameter.Conditions.Unit.ToLower())) .ToArray(); } else { ProductQueryRequest request = new ProductQueryRequest() { CatalogCode = catalogITL }; var res = ProductService.QueryProducts(request, query); returnValue.Result.Articles = res.Documents.ToArray(); } return(returnValue); #endregion UserCode }
protected static FR_L3ABDA_GAAfAS_1256_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L3ABDA_GAAfAS_1256 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3ABDA_GAAfAS_1256_Array(); #region Check ABDA Catalog Subscription string catalogITL = EnumUtils.GetEnumDescription(EPublicCatalogs.ABDA); var sbsCatalog = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, new ORM_CMN_PRO_SubscribedCatalog.Query() { CatalogCodeITL = catalogITL, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).FirstOrDefault(); if (sbsCatalog == null) { return(returnValue); } #endregion var searchCondition = Parameter.SearchCondition; if (!searchCondition.Contains("*")) { searchCondition = String.Format("*{0}*", searchCondition); } string query = new QueryBuilder <Product>() .From(0) .Size(10000) .Query(q => q .Bool(b => b .Must(m => m .QueryString(qs => qs.Fields( new string[] { SearchCondition.GetFiledName(ProductField.NAME), SearchCondition.GetFiledName(ProductField.CODE) }) .Query(SearchCondition.GetConditionForSearchText(Parameter.SearchCondition))) ) ) ) .Sort(s => s .Field(SearchCondition.GetFiledName(ProductField.NAME), PlainElastic.Net.SortDirection.asc)) .BuildBeautified(); var ProductService = CatalogServiceFactory.GetProductService(); ProductQueryRequest request = new ProductQueryRequest() { CatalogCode = catalogITL }; SearchResult <Product> res = ProductService.QueryProducts(request, query); var retrievedProducts = res.Documents.ToList(); var abdaProducts = new List <L3ABDA_GAAfAS_1256>(); foreach (var product in retrievedProducts) { abdaProducts.Add(new L3ABDA_GAAfAS_1256() { ProductITL = product.ProductITL, ProductNumber = product.Code, ProductName = product.Name }); } returnValue.Result = abdaProducts.ToArray(); return(returnValue); #endregion UserCode }
private static List <L5PR_GPwCPbSCfT_1237> GetProductsWithSearchCriteria(DbConnection Connection, DbTransaction Transaction, P_L5PR_GCPfCAfT_1705 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket, List <L5PR_GPwCPbSCfT_1237> retValProducts, IProductService _service, ProductQueryRequest request) { #region Search by ProductName and ProductNumber var query = new QueryBuilder <Product>() .From(Parameter.IncludedProductsCountFromLastCatalog) .Size(Parameter.Size) .Query(q => q .Bool(b => b .Must(m => m .QueryString(qs => qs.Fields(SearchCondition.GetFiledName(ProductField.NAME)).Query(SearchCondition.GetConditionForSearchText(Parameter.SearchCriteria))) ) ) ) .BuildBeautified(); var result = _service.QueryProducts <Product>(request, query); retValProducts = PopulateProductList(retValProducts, result, Parameter); if (retValProducts.Count < Parameter.Size) { query = new QueryBuilder <Product>() .From(0) .Size(Parameter.Size - retValProducts.Count) .Query(q => q .Bool(b => b .Must(m => m .QueryString(qs => qs.Fields(SearchCondition.GetFiledName(ProductField.CODE)).Query(SearchCondition.GetConditionForSearchText(Parameter.SearchCriteria))) ) ) ) .BuildBeautified(); result = _service.QueryProducts <Product>(request, query); retValProducts = PopulateProductList(retValProducts, result, Parameter); } #endregion if (Parameter.CatalogsToInclude != null && Parameter.CatalogsToInclude.Count() > 0) { var leftedCatalogs = Parameter.CatalogsToInclude.SkipWhile(x => x.CatalogITL != Parameter.LastIncludedCatalog.CatalogITL).ToList(); if (retValProducts.Count < Parameter.Size && leftedCatalogs.Count > 1) { var nextCatalog = leftedCatalogs[1]; P_L5PR_GCPfCAfT_1705 newParam = new P_L5PR_GCPfCAfT_1705(); newParam.From = 0; newParam.Size = Parameter.Size - retValProducts.Count; newParam.IncludedProductsCountFromLastCatalog = 0; newParam.LastIncludedCatalog = nextCatalog; newParam.CatalogsToInclude = Parameter.CatalogsToInclude; newParam.SearchCriteria = Parameter.SearchCriteria; newParam.LanguageID = Parameter.LanguageID; retValProducts.AddRange(cls_Get_Catalogs_Products_from_CatalogAPI_for_Tenant.Invoke(Connection, Transaction, newParam, securityTicket).Result.Products); } } return(retValProducts); }