Beispiel #1
0
        /// <summary>
        /// Metoda smaže materiál určený uživatelem.
        /// </summary>
        /// <param name="materialMarked"></param>
        public void DestroyMaterial(Material materialMarked)
        {
            // Materiál vybraný ke smazání
            Material selectMaterial = null;
            bool     materialExist  = false;

            foreach (Material material in MaterialCollection)
            {
                //Sníží množství materiálu o 1, když je ho dostatek na skladě.
                if ((materialMarked == material) && (material.MaterialQuantity > 1))
                {
                    material.MaterialQuantity--;
                    DeletedMaterialCollection.Add(new Material(material.MaterialNames, material.MaterialPrice, 1));//////
                    materialMarked.MaterialChange("MaterialQuantity");
                    materialExist = true;
                }
                // Pokud jde o poslední kus materiálu, je označen pro smazání z kolekce celý jeho typ.
                else if ((materialMarked.MaterialNames.ToString() == material.MaterialNames.ToString()) && (material.MaterialQuantity == 1))
                {
                    selectMaterial = material;
                    DeletedMaterialCollection.Add(new Material(material.MaterialNames, material.MaterialPrice, 1));//////
                }
            }
            // Odstranění materiálu z kolekce.
            if ((selectMaterial != null) && (materialExist == false))
            {
                MaterialCollection.Remove(selectMaterial);
            }
            // Uložení změn
            Save();
        }
Beispiel #2
0
        /// <summary>
        /// Metoda, při splnění zakázky, odstraní materiál, který jí odpovídá.
        /// </summary>
        /// <param name="selectedContract">Vybraná zakázka</param>
        public void ContractMaterial(Contract selectedContract)
        {
            // Materiál ke smazání
            Material deletetMaterial = null;
            bool     materialExist   = false;

            foreach (Material material in MaterialCollection)
            {
                // Pokud je na skladě materiál, který je potřebný pro splnění zakázky, jeho množství se sníží.
                if ((selectedContract.KindMaterials.ToString() == material.MaterialNames.ToString()) && (material.MaterialQuantity >= selectedContract.Pieces))
                {
                    material.MaterialQuantity -= selectedContract.Pieces;
                    DeletedMaterialCollection.Add(new Material(material.MaterialNames, material.MaterialPrice, selectedContract.Pieces));
                    materialExist = true;
                }
                // Pokud materiál potřebný ke splnění zakázky není v dostatečném množství je vyvolána výjimka.
                else if ((selectedContract.KindMaterials.ToString() == material.MaterialNames.ToString()) && (material.MaterialQuantity < selectedContract.Pieces))
                {
                    throw new ArgumentException("Lack of material");
                }
                // Pokud je množství materiálu nulové, tak je označen pro pozdější smazání.
                else if (material.MaterialQuantity == 0)
                {
                    deletetMaterial = material;
                }
                material.MaterialChange("MaterialQuantity");
            }
            // Podmínka je splněna, pokud typ potřebného materiálu neexistuje.
            if (!materialExist)
            {
                throw new ArgumentException("Material doesn't exist");
            }
            // Smazání materiálu s nulovím množstvím
            MaterialCollection.Remove(deletetMaterial);
            // Uložení změn
            Save();
        }