예제 #1
0
    RawMaterialType[] CheckRecipe(ProductType targetProduct)
    {
        RawMaterialType[] recipe;
        switch (targetProduct)
        {
        case ProductType.CarTire:
            recipe    = new RawMaterialType[3];
            recipe[0] = RawMaterialType.Plastic;
            recipe[1] = RawMaterialType.Plastic;
            recipe[2] = RawMaterialType.Metal;

            return(recipe);

        case ProductType.NeedleAndThread:
            recipe    = new RawMaterialType[2];
            recipe[0] = RawMaterialType.Metal;
            recipe[1] = RawMaterialType.Cotton;
            return(recipe);

        default:
            recipe    = new RawMaterialType[2];
            recipe[0] = RawMaterialType.Plastic;
            recipe[1] = RawMaterialType.Plastic;
            return(recipe);
        }
    }
예제 #2
0
        public RawMaterialType Post([FromBody] RawMaterialType rawMaterialType)
        {
            Argument.NotNull(rawMaterialType, "Price extra category is required.");

            using (var storage = new Storage())
            {
                var existingMaterial = storage
                                       .RawMaterialTypes
                                       .SingleOrDefault(rmt => rmt.RawMaterialTypeId == rawMaterialType.RawMaterialTypeId);

                if (null != existingMaterial)
                {
                    storage.Update(rawMaterialType);
                }
                else
                {
                    storage.Insert(rawMaterialType);
                }

                return(rawMaterialType);
            }
        }
예제 #3
0
        private void SetMaterialTypeName(RawMaterialType rawMaterialType)
        {
            string rollType, alloyType;

            switch (rawMaterialType.RollType)
            {
            case RollType.Cold:
                rollType = " х/к";
                break;

            case RollType.Hot:
                rollType = " г/к";
                break;

            default:
                rollType = "";
                break;
            }

            switch (rawMaterialType.AlloyType)
            {
            case AlloyType.LowAlloy:
                alloyType = " низколегир.";
                break;

            case AlloyType.Regular:
                alloyType = " рядовой";
                break;

            default:
                alloyType = "";
                break;
            }

            rawMaterialType.Name = $"Штрипс{alloyType}{rollType} {rawMaterialType.Thickness}мм";
        }
예제 #4
0
        public void Seed(Storage storage, int plantCode)
        {
            storage.Insert(new Manufacturer {
                Name = "ЧерМК", IsPrimary = true
            });
            storage.Insert(new Manufacturer {
                Name = "НЛМК", IsPrimary = true
            });
            storage.Insert(new Manufacturer {
                Name = "ММК", IsPrimary = true
            });
            //storage.Insert(new Manufacturer { Name = "(1) КТЗ", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(1) РязТЗ", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(1) БТЗ", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(1) ОМК", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(1) СЗТЗ", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(1) ТПК Союз", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(1) Машпрофиль", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(1) Профиль А", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(1) БИС", IsPrimary = false });

            storage.Insert(new Manufacturer {
                Name = "(2) ВестМет", IsPrimary = false
            });
            //storage.Insert(new Manufacturer { Name = "(2) Промизделия", IsPrimary = false });
            storage.Insert(new Manufacturer {
                Name = "(2) ТЭМПО", IsPrimary = false
            });
            //storage.Insert(new Manufacturer { Name = "(2) ОМК", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(2) ТМК", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(2) Уралтрубпром", IsPrimary = false });
            //storage.Insert(new Manufacturer { Name = "(2) Исаевский ТЗ", IsPrimary = false });

            storage.Insert(new PriceExtraCategory {
                Name = "Себестоимость"
            });
            storage.Insert(new PriceExtraCategory {
                Name = "Доставка материала"
            });
            storage.Insert(new PriceExtraCategory {
                Name = "Передел"
            });
            storage.Insert(new PriceExtraCategory {
                Name = "Доставка до Москвы"
            });

            var allManufacturers = storage
                                   .Manufacturers
                                   .ToList();

            var primaryManufacturers    = allManufacturers.Where(m => m.IsPrimary);
            var nonPrimaryManufacturers = allManufacturers.Where(m => !m.IsPrimary);

            var materialThickness = EnumerateThickness(plantCode);

            foreach (var thickness in materialThickness)
            {
                foreach (var rollType in new [] { RollType.Cold, RollType.Hot })
                {
                    foreach (var alloyType in new[] { AlloyType.LowAlloy, AlloyType.Regular })
                    {
                        var materialType = new RawMaterialType
                        {
                            AlloyType = alloyType,
                            RollType  = rollType,
                            Thickness = thickness,
                        };

                        SetMaterialTypeName(materialType);

                        var materialTypeId = storage.InsertWithIdentity(materialType);

                        foreach (var primaryManufacturer in primaryManufacturers)
                        {
                            var rawMaterialId = storage.InsertWithIdentity(
                                new RawMaterial
                            {
                                ManufacturerId    = primaryManufacturer.ManufacturerId,
                                RawMaterialTypeId = Convert.ToInt32(materialTypeId),
                            });

                            foreach (var productName in EnumerateProductNames(plantCode, rollType, alloyType))
                            {
                                storage.Insert(
                                    new Product
                                {
                                    ManufacturerId = primaryManufacturer.ManufacturerId,
                                    RawMaterialId  = Convert.ToInt32(rawMaterialId),
                                    Name           = productName,
                                    Thickness      = thickness,
                                });


                                foreach (var nonPrimaryManufacturer in nonPrimaryManufacturers)
                                {
                                    storage.Insert(
                                        new Product
                                    {
                                        ManufacturerId = nonPrimaryManufacturer.ManufacturerId,
                                        RawMaterialId  = Convert.ToInt32(rawMaterialId),
                                        Name           = productName,
                                        Thickness      = thickness,
                                    });
                                }
                            }
                        }
                    }
                }
            }
        }
 public static RawMaterialResourceToken GetDoubleToken(RawMaterialType type)
 {
     return(new RawMaterialResourceToken(type, 2));
 }
 public static RawMaterialResourceToken GetUnitToken(RawMaterialType type)
 {
     return(new RawMaterialResourceToken(type, 1));
 }
 public RawMaterialResourceToken(RawMaterialType type, uint tokenValue)
     : base(tokenValue)
 {
     this.Type = type;
 }