예제 #1
0
 public bool CastVariables()
 {
     try
     {
         ProductIDs.AddRange(ProductIDsText.Split(',').Select(s => int.Parse(s)));
         ProductQuantity.AddRange(ProductQuantityText.Split(',').Select(s => int.Parse(s)));
     }catch (Exception ex)
     {
         return(false);
     }
     return(true);
 }
예제 #2
0
        private IEnumerable <TransferResourceModel> GetTransferResources()
        {
            var mediaFiles = GetFilteredMedia();

            if (mediaFiles == null)
            {
                TraceError("No media found for export on connector {0}", Context.ConnectorID);
                return(null);
            }

            var listOfProductMediaFiles = mediaFiles as ProductMediaModel[] ?? mediaFiles.ToArray();

            TraceInformation("Found {0} Media Files.", listOfProductMediaFiles.Length);

            if (ProductIDs.Any())
            {
                listOfProductMediaFiles = listOfProductMediaFiles
                                          .Where(x => ProductIDs.Contains(x.ProductID))
                                          .ToArray();
            }

            var transferFiles = new List <TransferResourceModel>();

            foreach (var media in listOfProductMediaFiles)
            {
                TransferResourceModel transferResourceModel;

                if (GenerateTransferFileModel(media, out transferResourceModel))
                {
                    transferFiles.Add(transferResourceModel);
                }
            }

            if (transferFiles.Count == 0)
            {
                TraceWarning("There are no transfer files to send for connector {0}", Context.ConnectorID);
                return(null);
            }

            return(transferFiles);
        }
예제 #3
0
        /// <summary>
        ///   Cache some relevant data from a Concentrator database, used for lookup during further processing
        /// </summary>
        /// <param name="connectorID">Connector ID from context</param>
        /// <param name="languageID">Language ID from context</param>
        /// <param name="vendorID">Vendor ID from context</param>
        /// <returns>Was caching successful?</returns>
        private bool LoadDatabaseCache()
        {
            var success = false;

            try
            {
                TraceVerbose("Caching product data...");

                using (var pDb = new Database(Connection, Resources.PetaPocoProvider))
                {
                    _currentProducts = pDb
                                       .Query <ConfiguredProductDBModel>(String.Format(GetConfigurableProducts, DefaultConnector.ConnectorID))
                                       .ToList();

                    _configurableProductWithImage = pDb
                                                    .Query <int>(string.Format(GetProductWithImage, DefaultConnector.ConnectorID))
                                                    .ToList();

                    if (ProductIDs.Any())
                    {
                        _currentProducts = _currentProducts
                                           .Where(x => ProductIDs.Contains(x.ProductID))
                                           .ToList();
                    }

                    if (_currentProducts.Any())
                    {
                        var productsQuery = String.Format(GetProducts,
                                                          DefaultConnector.ConnectorID,
                                                          DefaultLanguage.LanguageID,
                                                          DefaultVendor.VendorID,
                                                          ProductExporterHelper.SerializeProductsToSqlParm(_currentProducts, false));

                        _products = pDb
                                    .Query <ProductDBModel>(productsQuery)
                                    .ToList();

                        var relatedProductsQuery = String.Format(GetRelatedProducts,
                                                                 DefaultVendor.VendorID,
                                                                 ProductExporterHelper.SerializeProductsToSqlParm(_currentProducts, false));

                        _relatedProducts = pDb
                                           .Query <RelatedProductDBModel>(relatedProductsQuery)
                                           .ToList();

                        List <Int32> listOfAllProducts = _products
                                                         .Select(x => x.ProductID)
                                                         .ToList();

                        listOfAllProducts.AddRange(
                            _relatedProducts.Select(x => x.SimpleProductID)
                            );

                        var productAttributesQuery = String.Format(GetAttributes,
                                                                   DefaultVendor.VendorID,
                                                                   DefaultLanguage.LanguageID,
                                                                   ProductExporterHelper.SerializeProductsToSqlParm(listOfAllProducts));

                        _productAttributes = pDb
                                             .Query <ProductAttributeValueDBModel>(productAttributesQuery)
                                             .ToList();

                        success = true;
                    }
                }
            }
            catch (Exception ex)
            {
                TraceError("Data retrieval aborted: ", ex.Message);
            }
            return(success);
        }