private static List <L5PR_GPwCPbSCfT_1237> GetProductsWithoutSearchCriteria(DbConnection Connection, DbTransaction Transaction, P_L5PR_GCPfCAfT_1705 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket, List <L5PR_GPwCPbSCfT_1237> retValProducts, IProductService _service, ProductQueryRequest request) { var query = new QueryBuilder <Product>() .From(Parameter.IncludedProductsCountFromLastCatalog) .Size(Parameter.Size).BuildBeautified(); var result = _service.QueryProducts <Product>(request, query); retValProducts = PopulateProductList(retValProducts, result, Parameter); 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); }
protected static FR_L5PR_GPwCPbSCfT_1237_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_GPwCPbSCfT_1237 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5PR_GPwCPbSCfT_1237_Array(); //Put your code here var returnedProductsList = new List <L5PR_GPwCPbSCfT_1237>(); if ((!Parameter.LoadInternalProducts && Parameter.LastIncludedCatalog != null && !String.IsNullOrEmpty(Parameter.LastIncludedCatalog.CatalogITL)) && String.IsNullOrEmpty(Parameter.SearchCriteria)) { // load only catalogs if defined last included catalog and you don't need own products P_L5PR_GCPfCAfT_1705 parameter = new P_L5PR_GCPfCAfT_1705(); parameter.From = Parameter.IncludedProductsCountFromLastCatalog; parameter.Size = Parameter.Size - Parameter.IncludedProductsCountFromLastCatalog; parameter.LastIncludedCatalog = Parameter.LastIncludedCatalog; parameter.CatalogsToInclude = Parameter.CatalogsToInclude; parameter.SearchCriteria = Parameter.SearchCriteria; parameter.IncludedProductsCountFromLastCatalog = Parameter.IncludedProductsCountFromLastCatalog; returnedProductsList.AddRange(cls_Get_Catalogs_Products_from_CatalogAPI_for_Tenant.Invoke(Connection, Transaction, parameter, securityTicket).Result.Products.ToList()); returnValue.Result = returnedProductsList.ToArray(); return(returnValue); } ///////////// GET PRODUCTS WITHOUT ITL ////////////// if (Parameter.LastIncludedCatalog == null || String.IsNullOrEmpty(Parameter.LastIncludedCatalog.CatalogITL)) { List <L5PR_GPwITL_1100> productsWithoutITL = new List <L5PR_GPwITL_1100>(); if (Parameter.LoadInternalProducts) { // load own products first if LastIncludedCatalog not defined var parameterProductsNoITL = new P_L5PR_GPwITL_1100(); parameterProductsNoITL.LanguageID = Parameter.LanguageID; parameterProductsNoITL.SearchCriteria = Parameter.SearchCriteria; parameterProductsNoITL.Size = Parameter.Size; parameterProductsNoITL.From = Parameter.From; productsWithoutITL = cls_Get_Products_without_ITL_for_Tenant.Invoke(Connection, Transaction, parameterProductsNoITL, securityTicket).Result.ToList(); if (productsWithoutITL != null && productsWithoutITL.Count() > 0) // if it returns some number of products { // return all internal products returnedProductsList = productsWithoutITL.Select(item => new L5PR_GPwCPbSCfT_1237() { CMN_PRO_ProductID = item.CMN_PRO_ProductID, ProductITL = string.Empty, Product_Number = item.Product_Number, Product_Name = item.Product_Name, Product_Description = item.Product_Description, CatalogITL = string.Empty, CatalogName = string.Empty }).ToList(); } } if (Parameter.CatalogsToInclude != null && Parameter.CatalogsToInclude.Count() > 0) { // return catalog products to populate return value list P_L5PR_GCPfCAfT_1705 parameter = new P_L5PR_GCPfCAfT_1705(); parameter.From = 0; parameter.Size = Parameter.Size - productsWithoutITL.Count(); parameter.IncludedProductsCountFromLastCatalog = 0; parameter.LastIncludedCatalog = Parameter.CatalogsToInclude.FirstOrDefault(); parameter.CatalogsToInclude = Parameter.CatalogsToInclude; parameter.SearchCriteria = Parameter.SearchCriteria; parameter.LanguageID = Parameter.LanguageID; returnedProductsList.AddRange(cls_Get_Catalogs_Products_from_CatalogAPI_for_Tenant.Invoke(Connection, Transaction, parameter, securityTicket).Result.Products.ToList()); } } else { // LastIncludedCatalog is defined, continue loading products from them if (Parameter.CatalogsToInclude != null && Parameter.CatalogsToInclude.Count() > 0) { P_L5PR_GCPfCAfT_1705 parameter = new P_L5PR_GCPfCAfT_1705(); parameter.From = Parameter.IncludedProductsCountFromLastCatalog; parameter.Size = Parameter.Size; parameter.IncludedProductsCountFromLastCatalog = Parameter.IncludedProductsCountFromLastCatalog; parameter.LastIncludedCatalog = Parameter.LastIncludedCatalog; parameter.CatalogsToInclude = Parameter.CatalogsToInclude; parameter.SearchCriteria = Parameter.SearchCriteria; parameter.LanguageID = Parameter.LanguageID; returnedProductsList.AddRange(cls_Get_Catalogs_Products_from_CatalogAPI_for_Tenant.Invoke(Connection, Transaction, parameter, securityTicket).Result.Products.ToList()); } } returnValue.Result = returnedProductsList.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L5PR_GCPfCAfT_1705 Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_GCPfCAfT_1705 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5PR_GCPfCAfT_1705(); //Put your code here L5PR_GCPfCAfT_1705 retVal = new L5PR_GCPfCAfT_1705(); List <L5PR_GPwCPbSCfT_1237> retValProducts = new List <L5PR_GPwCPbSCfT_1237>(); var _service = CatalogServiceFactory.GetProductService(); var request = new ProductQueryRequest(); request.CatalogCode = Parameter.LastIncludedCatalog.CatalogITL; if (String.IsNullOrEmpty(Parameter.SearchCriteria)) { retValProducts = GetProductsWithoutSearchCriteria(Connection, Transaction, Parameter, securityTicket, retValProducts, _service, request); } else { retValProducts = GetProductsWithSearchCriteria(Connection, Transaction, Parameter, securityTicket, retValProducts, _service, request); } retVal.Products = retValProducts.ToArray(); returnValue.Result = retVal; return(returnValue); #endregion UserCode }
///<summary> /// Method Invocation of wrapper classes ///<summary> protected static FR_L5PR_GCPfCAfT_1705 Invoke(DbConnection Connection, DbTransaction Transaction, string ConnectionString, P_L5PR_GCPfCAfT_1705 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { bool cleanupConnection = Connection == null; bool cleanupTransaction = Transaction == null; FR_L5PR_GCPfCAfT_1705 functionReturn = new FR_L5PR_GCPfCAfT_1705(); try { if (cleanupConnection == true) { Connection = CSV2Core_MySQL.Support.DBSQLSupport.CreateConnection(ConnectionString); Connection.Open(); } if (cleanupTransaction == true) { Transaction = Connection.BeginTransaction(); } functionReturn = Execute(Connection, Transaction, Parameter, securityTicket); #region Cleanup Connection/Transaction //Commit the transaction if (cleanupTransaction == true) { Transaction.Commit(); } //Close the connection if (cleanupConnection == true) { Connection.Close(); } #endregion } catch (Exception ex) { try { if (cleanupTransaction == true && Transaction != null) { Transaction.Rollback(); } } catch { } try { if (cleanupConnection == true && Connection != null) { Connection.Close(); } } catch { } throw new Exception("Exception occured in method cls_Get_Catalogs_Products_from_CatalogAPI_for_Tenant", ex); } return(functionReturn); }
///<summary> /// Invokes the method for the given Connection, and Transaction, leaving them open/not commited if no exceptions occured ///<summary> public static FR_L5PR_GCPfCAfT_1705 Invoke(DbConnection Connection, DbTransaction Transaction, P_L5PR_GCPfCAfT_1705 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { return(Invoke(Connection, Transaction, null, Parameter, securityTicket)); }
///<summary> /// Opens the connection/transaction for the given connectionString, and closes them when complete ///<summary> public static FR_L5PR_GCPfCAfT_1705 Invoke(string ConnectionString, P_L5PR_GCPfCAfT_1705 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { return(Invoke(null, null, ConnectionString, Parameter, securityTicket)); }
private static List <L5PR_GPwCPbSCfT_1237> PopulateProductList(List <L5PR_GPwCPbSCfT_1237> retValProducts, SearchResult <Product> result, P_L5PR_GCPfCAfT_1705 Parameter) { L5PR_GPwCPbSCfT_1237 productItem; foreach (var product in result.Documents) { productItem = new L5PR_GPwCPbSCfT_1237(); productItem.ProductITL = product.ProductITL; productItem.Product_Number = product.Code; productItem.Product_Name = new Dict() { DictionaryID = Guid.NewGuid() }; productItem.Product_Name.AddEntry(Parameter.LanguageID, product.Name); productItem.Product_Description = new Dict() { DictionaryID = Guid.NewGuid() }; productItem.Product_Description.AddEntry(Parameter.LanguageID, product.Description); productItem.CatalogITL = Parameter.LastIncludedCatalog.CatalogITL; productItem.CatalogName = Parameter.LastIncludedCatalog.CatalogName; retValProducts.Add(productItem); } return(retValProducts); }