Ejemplo n.º 1
0
        public HttpResponseMessage Put(int id, [FromBody] ProductFamily prodFamily)
        {
            try
            {
                var targetProdFamily = _theProductFamilyRepo.GetById(id);

                if (targetProdFamily != null && targetProdFamily.Id == id)
                {
                    targetProdFamily.Name        = prodFamily.Name;
                    targetProdFamily.Description = prodFamily.Description;
                    targetProdFamily.DateCreated = prodFamily.DateCreated;
                    targetProdFamily.DateUpdated = prodFamily.DateUpdated;
                    targetProdFamily.Licenses    = prodFamily.Licenses;
                    // targetProdFamily.Products = prodFamily.Products;

                    _theProductFamilyRepo.Update(prodFamily);

                    var productFamilyModel = TheModelFactory.Create(prodFamily);

                    productFamilyModel.Id = id;

                    return(Request.CreateResponse(HttpStatusCode.OK, productFamilyModel));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.NotModified, "Not found the product family"));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public static Product ToProduct(this CsvOperationModel csvOperationModel, ProductFamily productFamily = null, Product product = null)
        {
            if (product == null)
            {
                product = new Product();
                product.ProductDetails = new List <ProductDetail>();
            }

            product.Price         = csvOperationModel.CsvItem.Price;
            product.DiscountPrice = csvOperationModel.CsvItem.DiscountPrice;
            product.Sku           = csvOperationModel.CsvItem.Sku;

            if (productFamily != null)
            {
                product.ProductFamily = productFamily;
            }
            else
            {
                product.ProductFamily = new ProductFamily
                {
                    Category = csvOperationModel.CsvItem.Category,
                    Code     = csvOperationModel.CsvItem.FamilyCode
                };
            }

            UpdateDetails(product, nameof(csvOperationModel.CsvItem.Brand), csvOperationModel.CsvItem.Brand);
            UpdateDetails(product, nameof(csvOperationModel.CsvItem.Color), csvOperationModel.CsvItem.Color);
            UpdateDetails(product, nameof(csvOperationModel.CsvItem.Delivery), csvOperationModel.CsvItem.Delivery);
            UpdateDetails(product, nameof(csvOperationModel.CsvItem.Size), csvOperationModel.CsvItem.Size);
            UpdateDetails(product, nameof(csvOperationModel.CsvItem.Type), csvOperationModel.CsvItem.Type);

            return(product);
        }
Ejemplo n.º 3
0
        public void UpdateProductFamilyDetail_SuccessfullyWhenPriorityEqualandDirectionnotlessthenZero(int ID, string descriptionAdd)
        {
            var productFamilyDto = new ProductFamilyDto
            {
                Id          = ID,
                Description = descriptionAdd,
                Priority    = 2
            };


            var updatedProductFamily = new ProductFamily
            {
                ID          = ID,
                Description = descriptionAdd,
            };

            _productFamilyRepository.Find(productFamilyDto.Id).ReturnsForAnyArgs(LoadProductFamilyList().FirstOrDefault(x => x.ID == productFamilyDto.Id));

            _productFamilyRepository.GetAll().ReturnsForAnyArgs(LoadProductFamilyList());

            _productFamilyRepository.Update(Arg.Any <ProductFamily>()).Returns(updatedProductFamily);
            var actualResult = _adminProcessor.SaveProductFamily(productFamilyDto);

            Assert.AreEqual(updatedProductFamily.ID, actualResult.ID);
        }
Ejemplo n.º 4
0
        public static ProductFamily CreateProductFamily(int ID)
        {
            ProductFamily productFamily = new ProductFamily();

            productFamily.ID = ID;
            return(productFamily);
        }
        /// <summary>
        /// Sets the variant prices from base product.
        /// </summary>
        /// <param name="productFamily">The product family.</param>
        /// <param name="extendedPrice">The extended price.</param>
        /// <param name="isLowestPriceVariantSpecified">if set to <c>true</c> the lowest priced variant adjusted price is returned.</param>
        /// <param name="isLowestPriceVariantListPriceSpecified">if set to <c>true</c> the lowest priced variant list price is returned.</param>
        /// <param name="isHighestPriceVariantSpecified">if set to <c>true</c> the highest priced variant adjusted price.</param>
        protected virtual void SetVariantPricesFromBaseProduct(ProductFamily productFamily, ExtendedCommercePrice extendedPrice, bool isLowestPriceVariantSpecified, bool isLowestPriceVariantListPriceSpecified, bool isHighestPriceVariantSpecified)
        {
            decimal lowestPricedVariantAdjustedPrice;
            decimal lowestPricedVariantListPrice;

            if (productFamily.HasProperty("BasePrice") && productFamily["BasePrice"] != null)
            {
                lowestPricedVariantAdjustedPrice = productFamily.ListPrice;
                lowestPricedVariantListPrice     = (productFamily["BasePrice"] as decimal?).Value;
            }
            else
            {
                // No base price is defined, the List price is set to the actual ListPrice define in the catalog
                lowestPricedVariantAdjustedPrice = productFamily.ListPrice;
                lowestPricedVariantListPrice     = productFamily.ListPrice;
            }

            if (isLowestPriceVariantSpecified)
            {
                extendedPrice.LowestPricedVariant = lowestPricedVariantAdjustedPrice;
            }

            if (isLowestPriceVariantListPriceSpecified)
            {
                extendedPrice.LowestPricedVariantListPrice = lowestPricedVariantListPrice;
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Support for replacing a ProductFamily
        /// </summary>
        public async Task <IActionResult> Put([FromODataUri] int key, ProductFamily family)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (key != family.Id)
            {
                return(BadRequest());
            }

            _db.Entry(family).State = EntityState.Modified;
            try
            {
                await _db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!_db.ProductFamilies.Any(p => p.Id == key))
                {
                    return(NotFound());
                }
                throw;
            }

            return(Ok(family));
        }
Ejemplo n.º 7
0
 public CommodityGroupWrapper(RequestContext context)
     : base(context, SupportedResourceKinds.commodityGroups)
 {
     _entity         = new ProductFamily();
     _transformation = TransformationFactory.GetTransformation
                       <ITransformation <ProductFamilyDocument, CommodityGroupPayload> >
                           (SupportedResourceKinds.commodityGroups, context);
 }
Ejemplo n.º 8
0
        public static ProductFamily CreateProductFamily(int ID, long longProperty)
        {
            ProductFamily productFamily = new ProductFamily();

            productFamily.ID           = ID;
            productFamily.LongProperty = longProperty;
            return(productFamily);
        }
Ejemplo n.º 9
0
        public static string GetProductFamily(RestCommand command, int productFamilyID)
        {
            ProductFamily productFamily = ProductFamilies.GetProductFamily(command.LoginUser, productFamilyID);

            if (productFamily.OrganizationID != command.Organization.OrganizationID)
            {
                throw new RestException(HttpStatusCode.Unauthorized);
            }
            return(productFamily.GetXml("ProductFamily", true));
        }
Ejemplo n.º 10
0
 public ProductFamilyModel Create(ProductFamily prodFamily)
 {
     return(new ProductFamilyModel()
     {
         Id = prodFamily.Id,
         Name = prodFamily.Name,
         Description = prodFamily.Description,
         DateCeated = prodFamily.DateCreated,
         DateUpdated = prodFamily.DateUpdated
     });
 }
 /// <summary>
 /// Sets the variant prices.
 /// </summary>
 /// <param name="productFamily">The product family.</param>
 /// <param name="extendedPrice">The extended price.</param>
 /// <param name="isLowestPriceVariantSpecified">if set to <c>true</c> the lowest priced variant adjusted price is returned.</param>
 /// <param name="isLowestPriceVariantListPriceSpecified">if set to <c>true</c> the lowest priced variant list price is returned.</param>
 /// <param name="isHighestPriceVariantSpecified">if set to <c>true</c> the highest priced variant adjusted price.</param>
 protected virtual void SetVariantPrices(ProductFamily productFamily, ExtendedCommercePrice extendedPrice, bool isLowestPriceVariantSpecified, bool isLowestPriceVariantListPriceSpecified, bool isHighestPriceVariantSpecified)
 {
     if (this.UseProductBasePriceAsVariantPrice)
     {
         this.SetVariantPricesFromBaseProduct(productFamily, extendedPrice, isLowestPriceVariantSpecified, isLowestPriceVariantListPriceSpecified, isHighestPriceVariantSpecified);
     }
     else
     {
         this.SetVariantPricesFromProductVariants(productFamily, extendedPrice, isLowestPriceVariantSpecified, isLowestPriceVariantListPriceSpecified, isHighestPriceVariantSpecified);
     }
 }
Ejemplo n.º 12
0
 public ATDFramework(
     int partNumber,
     ProductFamily productFamily,
     string productName,
     int cureTimeInMinutes)
 {
     partNumber        = _partNumber;
     productFamily     = _productFamily;
     productName       = _productName;
     cureTimeInMinutes = _cureTimeInMinutes;
 }
Ejemplo n.º 13
0
        public async Task <IActionResult> CreateProductFamily([FromBody] ProductFamily productFamily)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _db.ProductFamilies.Add(productFamily);
            await _db.SaveChangesAsync();

            return(Created(productFamily));
        }
Ejemplo n.º 14
0
 // POST api/ProductFamily
 public HttpResponseMessage Post([FromBody] ProductFamily prodFamily)
 {
     try
     {
         _theProductFamilyRepo.Insert(prodFamily);
         return(Request.CreateResponse(HttpStatusCode.Created, TheModelFactory.Create(prodFamily)));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
Ejemplo n.º 15
0
 public void CreateNewProduct(
     int partNumber,
     ProductFamily productFamily,
     string productName,
     int cureTimeInMinutes)
 {
     ATDFramework atd = new ATDFramework(
         partNumber,
         productFamily,
         productName,
         cureTimeInMinutes);
 }
Ejemplo n.º 16
0
        public static void Delete(ProductFamily entry)
        {
            Database db = DatabaseFactory.CreateDatabase();

            DbCommand dbCommand = db.GetSqlStringCommand(String.Format(@"DELETE FROM {1} WHERE [Code] = N'{0}'",
                entry.Code, DataDictionaryEntryDa.GetDictionaryTableName(DictionaryName.QiProductFamily)));

            try
            {
                db.ExecuteNonQuery(dbCommand);
            }
            catch (System.Data.SqlClient.SqlException sex)      // 只捕获SqlException,其余抛出继续传播
            {
                DBHelper.ParseSqlException(sex, true);
            }
        }
        public void ProductFamily_Can_Create_Simple()
        {
            // Arrange
            var newFamily = new ProductFamily() {
                Name = string.Format("Test{0}", Guid.NewGuid().ToString())
            };

            // Act
            var result = Chargify.CreateProductFamily(newFamily);

            // Assert
            Assert.IsNotNull(result);
            //Assert.IsInstanceOfType(result, typeof(IProductFamily));
            Assert.AreEqual(newFamily.Name, result.Name, "Name didn't match");
            Assert.AreEqual(newFamily.Name.ToLowerInvariant(), result.Handle, "Handle wasn't as expected");
        }
Ejemplo n.º 18
0
        public static void Delete(ProductFamily entry)
        {
            Database db = DatabaseFactory.CreateDatabase();

            DbCommand dbCommand = db.GetSqlStringCommand(String.Format(@"DELETE FROM {1} WHERE [Code] = N'{0}'",
                                                                       entry.Code, DataDictionaryEntryDa.GetDictionaryTableName(DictionaryName.QiProductFamily)));

            try
            {
                db.ExecuteNonQuery(dbCommand);
            }
            catch (System.Data.SqlClient.SqlException sex)      // 只捕获SqlException,其余抛出继续传播
            {
                DBHelper.ParseSqlException(sex, true);
            }
        }
Ejemplo n.º 19
0
        private IQueryable <ProductFamily> LoadProductFamilyList()
        {
            var list = new List <ProductFamily>();

            for (int i = 1; i <= 5; i++)
            {
                var productFamily = new ProductFamily
                {
                    ID       = i,
                    Priority = i
                };

                list.Add(productFamily);
            }

            return(list.AsQueryable());
        }
Ejemplo n.º 20
0
        private static void Post_ProductFamily()
        {
            var container = new Container();

            Console.WriteLine("\n\t<< post productfamily >>");
            var newData = new ProductFamily
            {
                Id          = 4,
                Name        = "SQL SERVER",
                Description = "A relational database engine."
            };

            Console.WriteLine("\tCreating ProductFamily with Id={0}, Name={1}, Description={2}", newData.Id, newData.Name, newData.Description);

            container.AddObject("ProductFamilies", newData);
            container.SaveChangesAsync();
        }
Ejemplo n.º 21
0
        public void ProductFamily_Can_Create_Simple()
        {
            // Arrange
            var newFamily = new ProductFamily()
            {
                Name = string.Format("Test{0}", Guid.NewGuid().ToString())
            };

            // Act
            var result = Chargify.CreateProductFamily(newFamily);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(IProductFamily));
            Assert.AreEqual(newFamily.Name, result.Name, "Name didn't match");
            Assert.AreEqual(newFamily.Name.ToLowerInvariant(), result.Handle, "Handle wasn't as expected");
        }
Ejemplo n.º 22
0
        public static void Insert(ProductFamily entry)
        {
            Database db = DatabaseFactory.CreateDatabase();

            DbCommand dbCommand = db.GetSqlStringCommand(String.Format(@"INSERT INTO {6} VALUES 
(N'{0}', N'{1}', N'{2}', N'{3}', {4}, N'{5}', GETDATE(), 0)",
                                                                       entry.Code, entry.Title, entry.BU, entry.MailList, entry.Sort, entry.Updator,
                                                                       DataDictionaryEntryDa.GetDictionaryTableName(DictionaryName.QiProductFamily)));

            try
            {
                db.ExecuteNonQuery(dbCommand);
            }
            catch (System.Data.SqlClient.SqlException sex)      // 只捕获SqlException,其余抛出继续传播
            {
                DBHelper.ParseSqlException(sex, false);
            }
        }
Ejemplo n.º 23
0
        public static void Insert(ProductFamily entry)
        {
            Database db = DatabaseFactory.CreateDatabase();

            DbCommand dbCommand = db.GetSqlStringCommand(String.Format(@"INSERT INTO {6} VALUES
            (N'{0}', N'{1}', N'{2}', N'{3}', {4}, N'{5}', GETDATE(), 0)",
                entry.Code, entry.Title, entry.BU, entry.MailList, entry.Sort, entry.Updator,
                DataDictionaryEntryDa.GetDictionaryTableName(DictionaryName.QiProductFamily)));

            try
            {
                db.ExecuteNonQuery(dbCommand);
            }
            catch (System.Data.SqlClient.SqlException sex)      // 只捕获SqlException,其余抛出继续传播
            {
                DBHelper.ParseSqlException(sex, false);
            }
        }
        /// <summary>
        /// Sets the variant prices by looping through all of the variants.
        /// </summary>
        /// <param name="productFamily">The product family.</param>
        /// <param name="extendedPrice">The extended price.</param>
        /// <param name="isLowestPriceVariantSpecified">if set to <c>true</c> the lowest priced variant adjusted price is returned.</param>
        /// <param name="isLowestPriceVariantListPriceSpecified">if set to <c>true</c> the lowest priced variant list price is returned.</param>
        /// <param name="isHighestPriceVariantSpecified">if set to <c>true</c> the highest priced variant adjusted price.</param>
        protected virtual void SetVariantPricesFromProductVariants(ProductFamily productFamily, ExtendedCommercePrice extendedPrice, bool isLowestPriceVariantSpecified, bool isLowestPriceVariantListPriceSpecified, bool isHighestPriceVariantSpecified)
        {
            if (productFamily.Variants != null && productFamily.Variants.Count > 0)
            {
                decimal highestPrice        = 0.0M;
                decimal lowestPrice         = 0.0M;
                decimal basePrice           = 0.0M;
                bool    processingFirstItem = true;

                foreach (Variant variant in productFamily.Variants)
                {
                    if (!variant.IsListPriceNull())
                    {
                        if (processingFirstItem || variant.ListPrice < lowestPrice)
                        {
                            lowestPrice = variant.ListPrice;
                            basePrice   = variant.DataRow.Table.Columns.Contains("BasePriceVariant") && variant.DataRow["BasePriceVariant"] != DBNull.Value ? Convert.ToDecimal(variant.DataRow["BasePriceVariant"], CultureInfo.InvariantCulture) : 0.0M;
                        }

                        if (processingFirstItem || variant.ListPrice > highestPrice)
                        {
                            highestPrice = variant.ListPrice;
                        }

                        processingFirstItem = false;
                    }
                }

                if (isLowestPriceVariantSpecified)
                {
                    extendedPrice.LowestPricedVariant = lowestPrice;
                }

                if (isLowestPriceVariantListPriceSpecified)
                {
                    extendedPrice.LowestPricedVariantListPrice = basePrice;
                }

                if (isHighestPriceVariantSpecified)
                {
                    extendedPrice.HighestPricedVariant = highestPrice;
                }
            }
        }
Ejemplo n.º 25
0
        public static void Update(ProductFamily entry)
        {
            Database db = DatabaseFactory.CreateDatabase();

            DbCommand dbCommand = db.GetSqlStringCommand(String.Format(@"UPDATE {7} 
SET [Title] = N'{1}' ,[BU] = N'{2}' ,[MailList] = N'{3}' ,[Sort] = {4} ,[Optor] = N'{5}',[OpTime] = GETDATE(), [Deleted] = {6}
WHERE [Code] = N'{0}'",
                                                                       entry.Code, entry.TitleT, entry.BUT, entry.MaillistT, entry.SortT, entry.UpdatorT, entry.VisibleT ? 0 : 1,
                                                                       DataDictionaryEntryDa.GetDictionaryTableName(DictionaryName.QiProductFamily)));

            try
            {
                db.ExecuteNonQuery(dbCommand);
            }
            catch (System.Data.SqlClient.SqlException sex)      // 只捕获SqlException,其余抛出继续传播
            {
                DBHelper.ParseSqlException(sex, false);
            }
        }
Ejemplo n.º 26
0
        public static void Update(ProductFamily entry)
        {
            Database db = DatabaseFactory.CreateDatabase();

            DbCommand dbCommand = db.GetSqlStringCommand(String.Format(@"UPDATE {7}
            SET [Title] = N'{1}' ,[BU] = N'{2}' ,[MailList] = N'{3}' ,[Sort] = {4} ,[Optor] = N'{5}',[OpTime] = GETDATE(), [Deleted] = {6}
            WHERE [Code] = N'{0}'",
                      entry.Code, entry.TitleT, entry.BUT, entry.MaillistT, entry.SortT, entry.UpdatorT, entry.VisibleT ? 0 : 1,
                DataDictionaryEntryDa.GetDictionaryTableName(DictionaryName.QiProductFamily)));

            try
            {
                db.ExecuteNonQuery(dbCommand);
            }
            catch (System.Data.SqlClient.SqlException sex)      // 只捕获SqlException,其余抛出继续传播
            {
                DBHelper.ParseSqlException(sex, false);
            }
        }
Ejemplo n.º 27
0
        private static async void Post_ProductFamily_Products()
        {
            var container = new Container();

            Console.WriteLine("\n\t<< post productfamily.products >>");
            var           key    = 4;
            ProductFamily family = container.ProductFamilies.Where(pf => pf.Id == key).AsEnumerable().SingleOrDefault();

            var sql2012 = new Product
            {
                Name           = "SQL Server 2012",
                ReleaseDate    = new DateTime(2012, 3, 6),
                SupportedUntil = new DateTime(2017, 7, 11)
            };

            container.AddRelatedObject(family, "Products", sql2012);

            Console.WriteLine("\tCreating Product with Name={0} under ProductFamily with name {1}", sql2012.Name, family.Name);
            await container.SaveChangesAsync();
        }
Ejemplo n.º 28
0
        private static void Delete_ProductFamily()
        {
            var container = new Container();

            Console.WriteLine("\n\t<< delete productfamily >>");
            var           key    = 4;
            ProductFamily family = container.ProductFamilies.Where(pf => pf.Id == key).FirstOrDefault();

            if (family != null)
            {
                Console.WriteLine("\tDeleting ProductFamily with Id={0}, Name={1}", family.Id, family.Name);

                container.DeleteObject(family);
                container.SaveChangesAsync();
            }
            else
            {
                Console.WriteLine("\tProductFamily with Id '{0}' not found.", key);
            }
        }
        public HttpResponseMessage CreateLink([FromODataUri] int key, string navigationProperty, [FromBody] Uri link)
        {
            Product product = _db.Products.SingleOrDefault(p => p.ID == key);

            switch (navigationProperty)
            {
            case "Family":
                // The utility method uses routing (ODataRoutes.GetById should match) to get the value of {id} parameter
                // which is the id of the ProductFamily.
                int           relatedKey = Request.GetKeyValue <int>(link);
                ProductFamily family     = _db.ProductFamilies.SingleOrDefault(f => f.ID == relatedKey);
                product.Family = family;
                break;

            default:
                throw ODataErrors.CreatingLinkNotSupported(Request, navigationProperty);
            }
            _db.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.NoContent));
        }
        public void ProductFamily_Can_Create_Complex()
        {
            // Arrange
            var newFamily = new ProductFamily() {
                Name = string.Format("Test{0}", Guid.NewGuid().ToString()),
                Description = Guid.NewGuid().ToString(),
                AccountingCode = Guid.NewGuid().ToString(),
                Handle = Guid.NewGuid().ToString()
            };

            // Act
            var result = Chargify.CreateProductFamily(newFamily);

            // Assert
            Assert.IsNotNull(result);
            //Assert.IsInstanceOfType(result, typeof(IProductFamily));
            Assert.AreEqual(newFamily.Name, result.Name, "Name didn't match");
            Assert.AreEqual(newFamily.Description, result.Description, "Description didn't match");
            Assert.AreEqual(newFamily.Handle, result.Handle, "Handle didn't match");
            //Assert.AreEqual(newFamily.AccountingCode, result.AccountingCode, "Accounting Code didn't match");
        }
Ejemplo n.º 31
0
        public void AddProductFamilyDetail_Successfully(int ID, string descriptionAdd)
        {
            var productFamilyDto = new ProductFamilyDto
            {
                Id          = ID,
                Description = descriptionAdd,
            };

            var addedProductFamily = new ProductFamily
            {
                ID          = 1,
                Description = descriptionAdd
            };

            _productFamilyRepository.GetAll().ReturnsForAnyArgs(LoadProductFamilyList());

            _productFamilyRepository.Add(Arg.Any <ProductFamily>()).Returns(addedProductFamily);
            var actualResult = _adminProcessor.SaveProductFamily(productFamilyDto);

            Assert.AreEqual(addedProductFamily.ID, actualResult.ID);
        }
Ejemplo n.º 32
0
        public void ProductFamily_Can_Create_Complex()
        {
            // Arrange
            var newFamily = new ProductFamily()
            {
                Name           = string.Format("Test{0}", Guid.NewGuid().ToString()),
                Description    = Guid.NewGuid().ToString(),
                AccountingCode = Guid.NewGuid().ToString(),
                Handle         = Guid.NewGuid().ToString()
            };

            // Act
            var result = Chargify.CreateProductFamily(newFamily);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(IProductFamily));
            Assert.AreEqual(newFamily.Name, result.Name, "Name didn't match");
            Assert.AreEqual(newFamily.Description, result.Description, "Description didn't match");
            Assert.AreEqual(newFamily.Handle, result.Handle, "Handle didn't match");
            //Assert.AreEqual(newFamily.AccountingCode, result.AccountingCode, "Accounting Code didn't match");
        }
Ejemplo n.º 33
0
        public void DeleteProductFamily_Successfully(int ID, string userID)
        {
            var productFamilyDto = new ProductFamilyDto
            {
                Id = ID
            };


            var updatedProductFamily = new ProductFamily
            {
                ID     = ID,
                Active = false
            };

            _productFamilyRepository.
            GetSingle(x => x.ID == productFamilyDto.Id).
            ReturnsForAnyArgs(LoadProductFamilyList().FirstOrDefault(x => x.ID == productFamilyDto.Id));

            _productFamilyRepository.Update(Arg.Any <ProductFamily>()).Returns(updatedProductFamily);
            var actualResult = _adminProcessor.DeleteProductFamily(productFamilyDto.Id, userID);

            Assert.AreEqual(actualResult, true);
        }
        /// <summary>
        /// Sets the variant prices by looping through all of the variants.
        /// </summary>
        /// <param name="productFamily">The product family.</param>
        /// <param name="extendedPrice">The extended price.</param>
        /// <param name="isLowestPriceVariantSpecified">if set to <c>true</c> the lowest priced variant adjusted price is returned.</param>
        /// <param name="isLowestPriceVariantListPriceSpecified">if set to <c>true</c> the lowest priced variant list price is returned.</param>
        /// <param name="isHighestPriceVariantSpecified">if set to <c>true</c> the highest priced variant adjusted price.</param>
        protected virtual void SetVariantPricesFromProductVariants(ProductFamily productFamily, ExtendedCommercePrice extendedPrice, bool isLowestPriceVariantSpecified, bool isLowestPriceVariantListPriceSpecified, bool isHighestPriceVariantSpecified)
        {
            if (productFamily.Variants != null && productFamily.Variants.Count > 0)
            {
                decimal highestPrice = 0.0M;
                decimal lowestPrice = 0.0M;
                decimal basePrice = 0.0M;
                bool processingFirstItem = true;

                foreach (Variant variant in productFamily.Variants)
                {
                    if (!variant.IsListPriceNull())
                    {
                        if (processingFirstItem || variant.ListPrice < lowestPrice)
                        {
                            lowestPrice = variant.ListPrice;
                            basePrice = variant.DataRow.Table.Columns.Contains("BasePriceVariant") && variant.DataRow["BasePriceVariant"] != DBNull.Value ? Convert.ToDecimal(variant.DataRow["BasePriceVariant"], CultureInfo.InvariantCulture) : 0.0M;
                        }

                        if (processingFirstItem || variant.ListPrice > highestPrice)
                        {
                            highestPrice = variant.ListPrice;
                        }

                        processingFirstItem = false;
                    }
                }

                if (isLowestPriceVariantSpecified)
                {
                    extendedPrice.LowestPricedVariant = lowestPrice;
                }

                if (isLowestPriceVariantListPriceSpecified)
                {
                    extendedPrice.LowestPricedVariantListPrice = basePrice;
                }

                if (isHighestPriceVariantSpecified)
                {
                    extendedPrice.HighestPricedVariant = highestPrice;
                }
            }
        }
Ejemplo n.º 35
0
        /// <summary>
        /// 比较当前对象和同一类型的另一对象。用于排序。
        /// </summary>
        /// <param name="other">与此对象进行比较的对象。</param>
        /// <returns>一个 32 位有符号整数,指示要比较的对象的相对顺序。</returns>
        public int CompareTo(ProductFamily other)
        {
            int s = this.Sort.CompareTo(other.Sort);

            if (s == 0) return this.Code.CompareTo(other.Code);
            else return s;
        }
        /// <summary>
        /// Sets the variant prices from base product.
        /// </summary>
        /// <param name="productFamily">The product family.</param>
        /// <param name="extendedPrice">The extended price.</param>
        /// <param name="isLowestPriceVariantSpecified">if set to <c>true</c> the lowest priced variant adjusted price is returned.</param>
        /// <param name="isLowestPriceVariantListPriceSpecified">if set to <c>true</c> the lowest priced variant list price is returned.</param>
        /// <param name="isHighestPriceVariantSpecified">if set to <c>true</c> the highest priced variant adjusted price.</param>
        protected virtual void SetVariantPricesFromBaseProduct(ProductFamily productFamily, ExtendedCommercePrice extendedPrice, bool isLowestPriceVariantSpecified, bool isLowestPriceVariantListPriceSpecified, bool isHighestPriceVariantSpecified)
        {
            decimal lowestPricedVariantAdjustedPrice;
            decimal lowestPricedVariantListPrice;

            if (productFamily.HasProperty("BasePrice") && productFamily["BasePrice"] != null)
            {
                lowestPricedVariantAdjustedPrice = productFamily.ListPrice;
                lowestPricedVariantListPrice = (productFamily["BasePrice"] as decimal?).Value;
            }
            else
            {
                // No base price is defined, the List price is set to the actual ListPrice define in the catalog
                lowestPricedVariantAdjustedPrice = productFamily.ListPrice;
                lowestPricedVariantListPrice = productFamily.ListPrice;
            }

            if (isLowestPriceVariantSpecified)
            {
                extendedPrice.LowestPricedVariant = lowestPricedVariantAdjustedPrice;
            }

            if (isLowestPriceVariantListPriceSpecified)
            {
                extendedPrice.LowestPricedVariantListPrice = lowestPricedVariantListPrice;
            }
        }
Ejemplo n.º 37
0
        private static void Post_ProductFamily()
        {
            Container ctx = new Container();
            Console.WriteLine("\n\t<< post productfamily >>");
            ProductFamily sql = new ProductFamily
            {
                ID = 4,
                Name = "SQL SERVER",
                Description = "A relational database engine."
            };

            Console.WriteLine("\tCreating ProductFamily with Id={0}, Name={1}, Description={2}", sql.ID, sql.Name, sql.Description);

            ctx.AddObject("ProductFamilies", sql);
            ctx.SaveChanges();
        }
Ejemplo n.º 38
0
        private static List <ProductCategory> GetCategories()
        {
            List <IIfcRelDefinesByType> ifcRelDefinesByTypes = Model.Instances.OfType <IIfcRelDefinesByType>().ToList();
            List <ProductCategory>      Categories           = new List <ProductCategory>();

            List <string> list    = Products.Select(a => a.GetType().Name).ToList();
            List <string> newlist = Products.Select(a => a.GetType().Name).ToList().Distinct().ToList();

            newlist.ForEach(a => Categories.Add(new ProductCategory()
            {
                Name = a
            }));


            foreach (var item in Categories)
            {
                List <IIfcProduct> products = Products.Where(p => p.GetType().Name == item.Name).ToList();
                foreach (var product in products)
                {
                    List <string> lst = new List <string>();
                    if (product.Name != null)
                    {
                        lst = product.Name.Value.Value.ToString().Split(':').ToList();
                    }
                    if (lst.Count >= 3)
                    {
                        IIfcRelDefinesByType relType = ifcRelDefinesByTypes.Where(a => a == product.IsTypedBy.FirstOrDefault()).FirstOrDefault();
                        if (item.Families.Where(c => c.Name == lst[0]).Count() == 0)
                        {
                            ProductFamily productFamily = new ProductFamily()
                            {
                                Name = lst[0]
                            };
                            ProductType productType = new ProductType()
                            {
                                Name = lst[1],
                            };
                            if (relType != null)
                            {
                                relType.RelatedObjects.ToList().ForEach(a => productType.Products.Add((IIfcProduct)a));
                                productType.Id = relType.RelatingType.EntityLabel;
                            }
                            else
                            {
                                productType.Products.Add(product);
                                if (product.IsTypedBy.Count() >= 1)
                                {
                                    productType.Id = product.IsTypedBy.FirstOrDefault().EntityLabel;
                                }
                            }
                            productFamily.Types.Add(productType);
                            item.Families.Add(productFamily);
                        }
                        else
                        {
                            ProductFamily existingFamily = item.Families.Where(c => c.Name == lst[0]).FirstOrDefault();
                            if (existingFamily.Types.Where(c => c.Name == lst[1]).Count() == 0)
                            {
                                ProductType productType = new ProductType()
                                {
                                    Name = lst[1]
                                };
                                if (relType != null)
                                {
                                    relType.RelatedObjects.ToList().ForEach(a => productType.Products.Add((IIfcProduct)a));
                                    productType.Id = relType.RelatingType.EntityLabel;
                                }
                                else
                                {
                                    productType.Products.Add(product);
                                    if (product.IsTypedBy.Count() >= 1)
                                    {
                                        productType.Id = product.IsTypedBy.FirstOrDefault().EntityLabel;
                                    }
                                }
                                item.Families.Where(c => c.Name == lst[0]).FirstOrDefault().Types.Add(productType);
                            }
                            else if (existingFamily.Types.Where(c => c.Name == lst[1]).FirstOrDefault().Products.Where(p => p.EntityLabel == product.EntityLabel).Count() == 0)
                            {
                                existingFamily.Types.Where(c => c.Name == lst[1]).FirstOrDefault().Products.Add(product);
                            }
                        }
                    }
                }
            }
            return(Categories);
        }
Ejemplo n.º 39
0
 public static ProductFamily CreateProductFamily(int ID, long longProperty)
 {
     ProductFamily productFamily = new ProductFamily();
     productFamily.ID = ID;
     productFamily.LongProperty = longProperty;
     return productFamily;
 }
Ejemplo n.º 40
0
 public void AddToProductFamilies(ProductFamily productFamily)
 {
     base.AddObject("ProductFamilies", productFamily);
 }
Ejemplo n.º 41
0
 public static ProductFamily CreateProductFamily(int ID)
 {
     ProductFamily productFamily = new ProductFamily();
     productFamily.ID = ID;
     return productFamily;
 }
Ejemplo n.º 42
0
 public void AddToProductFamilies(ProductFamily productFamily)
 {
     base.AddObject("ProductFamilies", productFamily);
 }
 /// <summary>
 /// Sets the variant prices.
 /// </summary>
 /// <param name="productFamily">The product family.</param>
 /// <param name="extendedPrice">The extended price.</param>
 /// <param name="isLowestPriceVariantSpecified">if set to <c>true</c> the lowest priced variant adjusted price is returned.</param>
 /// <param name="isLowestPriceVariantListPriceSpecified">if set to <c>true</c> the lowest priced variant list price is returned.</param>
 /// <param name="isHighestPriceVariantSpecified">if set to <c>true</c> the highest priced variant adjusted price.</param>
 protected virtual void SetVariantPrices(ProductFamily productFamily, ExtendedCommercePrice extendedPrice, bool isLowestPriceVariantSpecified, bool isLowestPriceVariantListPriceSpecified, bool isHighestPriceVariantSpecified)
 {
     if (this.UseProductBasePriceAsVariantPrice)
     {
         this.SetVariantPricesFromBaseProduct(productFamily, extendedPrice, isLowestPriceVariantSpecified, isLowestPriceVariantListPriceSpecified, isHighestPriceVariantSpecified);
     }
     else
     {
         this.SetVariantPricesFromProductVariants(productFamily, extendedPrice, isLowestPriceVariantSpecified, isLowestPriceVariantListPriceSpecified, isHighestPriceVariantSpecified);
     }
 }